Displaying #maven-dev/2017-03-08.log:

Wed Mar 8 06:24:35 2017  mbenson__:Joined the channel
Wed Mar 8 09:57:42 2017  olamy:Joined the channel
Wed Mar 8 11:50:06 2017  Michael-O:Joined the channel
Wed Mar 8 12:33:08 2017  Michael-O:Joined the channel
Wed Mar 8 15:38:47 2017  tibor_:Joined the channel
Wed Mar 8 16:10:17 2017  Michael-O:Joined the channel
Wed Mar 8 16:16:09 2017  Michael-O:Hi tibor_, do you have a minute? I spent the entire yesterday to do some analysis.
Wed Mar 8 16:16:30 2017  tibor_:yes, tell me
Wed Mar 8 16:18:34 2017  tibor_:should we update exec-1.0-main.jar in order to communicate with fork jar?
Wed Mar 8 16:27:12 2017  Michael-O:No, I have done two type of tests on four machines (real and virtual):
Wed Mar 8 16:27:38 2017  Michael-O:1. start surefire and freebsd-issue manually and wil truss/ktrace and watch all system calls
Wed Mar 8 16:28:03 2017  Michael-O:2. Reduce all non-sysout changes in 2.19.2-experimental and see what happens
Wed Mar 8 16:28:07 2017  Michael-O:Let gets to first
Wed Mar 8 16:28:46 2017  Michael-O:truss, especially ktrace, print a lot of information. I see everything, really everything.
Wed Mar 8 16:29:24 2017  Michael-O:Starting exec-1.0-main.jar without sleep 3 and Thread.sleep() is superfast even on a P4. Less than 150 ms
Wed Mar 8 16:30:06 2017  Michael-O:Starting Surefire Booter takes even on a fast machine 5 seconds due to the JARs read from the manifest
Wed Mar 8 16:30:43 2017  Michael-O:Some weird issues appeared that tne VM opens binds a socket to 0.0.0.0, for whatsoever reason
Wed Mar 8 16:31:24 2017  Michael-O:and I see a lot of gettimeofday() and "_umtx_op operation timed out" which is kernel-space monitor/lock
Wed Mar 8 16:33:18 2017  Michael-O:I assume our 25 seconds may not only come from incorrect code in Utils, but may also be a bug in the JVM implementation regarding forking and kernel-mode locks. But these are vague assumptions. I am not really familiar with kernel-mode code in C and any type of OS.
Wed Mar 8 16:35:51 2017  Michael-O:So far, so clear?
Wed Mar 8 16:48:03 2017  tibor_:good catch
Wed Mar 8 16:48:48 2017  tibor_:Without your experiences in native world I would not be able to investigate so deeply as you have done it.
Wed Mar 8 16:49:15 2017  tibor_:So we are not using sockets in dependencies in manifest
Wed Mar 8 16:49:22 2017  Michael-O:I can provide you the truss output. It contains standard C calls and times
Wed Mar 8 16:49:39 2017  Michael-O:The sockets are used in the JVM because the are created before our JAR is loaded
Wed Mar 8 16:49:51 2017  Michael-O:I have observed this only the machine at work
Wed Mar 8 16:49:52 2017  tibor_:Maybe I should check it but I don't think we bind to wildcard, and then only JVM.
Wed Mar 8 16:50:04 2017  Michael-O:but we don't use sockets, do we?
Wed Mar 8 16:50:16 2017  tibor_:no we do not in surefire
Wed Mar 8 16:50:22 2017  tibor_:how abput Utils?
Wed Mar 8 16:50:37 2017  tibor_:let me open IDEA
Wed Mar 8 16:51:44 2017  tibor_:no "socket", "packet" found in Utils
Wed Mar 8 16:52:22 2017  tibor_:either in surefire
Wed Mar 8 16:52:27 2017  Michael-O:Basically, all operations before our JAR is loaded are opaque to us and we shouldn't care
Wed Mar 8 16:52:32 2017  Michael-O:all we care is our code
Wed Mar 8 16:52:40 2017  tibor_:yes
Wed Mar 8 16:53:05 2017  tibor_:the claspath contains only surefire staff, and customer artifacts
Wed Mar 8 16:53:23 2017  Michael-O:I think, the long wait are either bad implementation in the JVM or race conditions in our code which case the lookup
Wed Mar 8 16:53:37 2017  Michael-O:it is always 20 seconds, so this must be some timeout in our code, I guess.
Wed Mar 8 16:54:11 2017  tibor_:we can avoid using the PING timer which is daemon thread
Wed Mar 8 16:54:25 2017  tibor_:all threads in Unix are daemons, or?
Wed Mar 8 16:54:41 2017  Michael-O:No, unless you request a daemon thread
Wed Mar 8 16:54:42 2017  Michael-O:you decide
Wed Mar 8 16:54:51 2017  tibor_:ok
Wed Mar 8 16:54:58 2017  Michael-O:I see that native threads are forked, so Java threads are directly mapped to native threads
Wed Mar 8 16:55:02 2017  tibor_:we can try to disable the timer
Wed Mar 8 16:55:35 2017  tibor_:the period of the timer is 10 sec
Wed Mar 8 16:55:43 2017  Michael-O:Yes, this is a cheap one.
Wed Mar 8 16:55:46 2017  tibor_:so makes sense
Wed Mar 8 16:55:50 2017  Michael-O:I will be back in 30 min.
Wed Mar 8 16:56:02 2017  Michael-O:will tell you about the second issue
Wed Mar 8 16:56:35 2017  tibor_:I am leaving the office now.
Wed Mar 8 17:51:10 2017  rfscholte:Joined the channel
Wed Mar 8 22:18:21 2017  tibor_:Joined the channel
Wed Mar 8 23:13:11 2017  ASFBot:Joined the channel

Comments