I committed the classlib part of this patch last week and am ready to commit the working_jdktools part now. There are two issues I have come across:

1) In trace output, the seconds part of the time stamp is garbled. I'm not sure exactly what is causing this right now, but I get a feeling there might be a problem in our str_ftime port library function. 2) On Linux, I see a crash during shutdown when debugging. It appears that as the JDWP agent is shutting down it starts freeing up some of the resources it's been using, including the sockets, before other parts of the agent are finished using them. We then make a hysock_set_nonblocking() call with what appears to be a null/bad socket, and this crashes having passed that socket to ioctl() [1]. It looks to be a timing issue - I think the shutdown phase of the agent needs closer inspection to make sure that resources are not freed while they are still being used.

Although these issues still exist, I would like to commit the code to the Java 6 branch so I can continue working on fixes for them directly in Harmony, rather than my local workspace, and also to allow others to try out the new agent. Once committed, Ill raise a JIRA for both of these issues to keep track of them.

Does anyone have any comments/objections to my committing the code in it's current state?

Regards,
Oliver

[1]
Stack trace:
 0: 0xb7f0c6f1  hysock_set_nonblocking (hysock.c:2724)
1: 0x95d2d0fb SetSocketBlockingMode(_jdwpTransportEnv*, hysocket_struct*, bool) (SocketTransport.cpp:-1) 2: 0x95d2d9f5 TCPIPSocketTran_Accept(_jdwpTransportEnv*, long long, long long) (SocketTransport.cpp:-1) 3: 0x9630e7b0 jdwp::TransportManager::Connect() (TransportManager_pd.cpp:-1) 4: 0x962f57ee jdwp::PacketDispatcher::Run(JNIEnv_External*) (TransportManager_pd.cpp:-1) 5: 0x962f70a6 jdwp::PacketDispatcher::StartFunction(jvmtiEnv_struct*, JNIEnv_External*, void*) (TransportManager_pd.cpp:-1) 6: 0xb76ea846 jthread_wrapper_start_proc(void*) (thread_java_basic.cpp:167)
 7: 0xb7f274b8  thread_start_func (thread_os.c:106)
 8: 0xb7c86f3b  start_thread (??:-1)
 9: 0xb7e84bee  __clone (??:-1)
<end of stack trace>

Crashed module:
/home/odeakin/svn-checkouts/fed6/target/hdk/jdk/jre/bin/libhyprt.so
(JNI native library)

VM attached threads:

--->[0x95ca9b90]  '_jdwp_PacketDispatcher'
   [0x95d2ab90]  '_jdwp_EventDispatcher'
   [0xb7c728e0]  'destroy'
Segmentation fault


Tony Wu wrote:
Thanks Oliver, pls go ahead!

On Thu, Jun 25, 2009 at 10:40 PM, Oliver
Deakin<oliver.dea...@googlemail.com> wrote:
Just a heads up, Im going to start working on committing the accepted JDWP
contribution into the Java 6 branch.

Regards,
Oliver

Oliver Deakin wrote:
+1 votes from Sean, Jimmy, Gregory, Jim, Alexey, Nathan, Regis, Kevin,
Pavel, Sian, Alexei, Mark, Tim, Tony and Ilya.

No other votes, so the vote passes.

Thanks all for voting - I will wait until after M10 to check in the code
since we are about to enter feature freeze.

Regards,
Oliver


Oliver Deakin wrote:
Hi all,

It's been a week since I sent out the initial mail about this
contribution and opinion seems positive so I'd like to open a vote to
officially accept the contribution.

[ ] +1 Accept this contribution
[ ] -1 Reject this contribution because...

I'll conclude the vote in 3 days as usual, unless anyone needs more time.

Regards,
Oliver


Oliver Deakin wrote:
Hi all,

A little while ago, IBM created a mirror of the Java 6 jdktools branch
so that we could start bringing Harmony JDWP into the IBM Java releases. We
began working in that mirror because it was convenient for our internal
builds, with a plan to reflect all changes we made back into Harmony as we
went. Unfortunately, as deadlines drew in and releases came and went those
plans did not come into fruition - until now :)

I'd like to announce the contribution of an enhanced Java 6 level JDWP
agent and socket transport layer. It has been attached to HARMONY-6187 [1]
for everyone to try out - please take a look. It has the following
enhancements:
- A large number of bug fixes.
- Ported to a wide variety of platforms - Linux x86/x86_64, Linux PPC
32/64, zLinux 31/64, Windows x86/x86_64, AIX PPC 32/64 and zOS 31/64.
- As part of the porting process, all non-portable C++ usage has been
removed and rewritten, particularly use of C++ standard libraries.
- JSR 45 support implemented. The new JDWP agent allows debugging of
non-Java stratum code running on the VM, for example JSPs.
- Significant performance improvements.

All authors already have ACQs recorded. There may be some more work to
be done to get the new JDWP functioning 100% with Harmony, but I'd rather do
that work out in the open once it is committed. Please let me know if there
are any objections/comments to this contribution! I'll give it a few days
and then start a vote.

Regards,
Oliver

[1] https://issues.apache.org/jira/browse/HARMONY-6187


--
Oliver Deakin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire
PO6 3AU






--
Oliver Deakin
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU

Reply via email to