RFR: JDK-8157141 & JDK-8166454: Solaris getisax(2) and meminfo(2) cleanup
Alan Burlison
Alan.Burlison at oracle.com
Mon Sep 26 21:56:50 UTC 2016
On 26/09/16 21:49, David Holmes wrote:
>> # Internal Error
>> (/opt/jprt/T/P1/093524.alanbur/s/hotspot/src/share/vm/runtime/thread.hpp:662),
>>
>> pid=51406, tid=2
>> # assert(current != 0L) failed: Thread::current() called on detached
>> thread
>
> Can you send me the stacktrace please. Both forms of the code should be
> using the same underlying UL code, so both should either fail or work.
core 'core' of 29465: ./java -Xlog:os+cpu -version
------------ lwp# 1 / thread# 1 ---------------
ffffffff7ed4c320 __lwp_wait (0, ffffffff7fffe77c, 0, 2,
ffffffff7f402a40, 0) + 8
ffffffff7ed43360 _thrp_join (2, 0, ffffffff7fffe8e0, 1, 0,
ffffffff7fffe8ec) + 3c
ffffffff7ed434cc thr_join (2, 0, ffffffff7fffe8e0, ffffffff7fffe9a0,
0, 3) + 14
ffffffff6100d190 ContinueInNewThread0 (ffffffff61006b30, 100000,
ffffffff7fffe9a0, fffffffffffffff8, ffffffff60d81aa8, 100000) + 30
ffffffff6100b1b4 ContinueInNewThread (109000, 100000,
ffffffff5fe5c1b0, ffffffff5fe5b9b0, 0, ffffffff5fe5c180) + 94
ffffffff6100d21c JVMInit (ffffffff7fffebc8, 0, 2, 1001015d8, 0, 0) + 2c
ffffffff61006b10 JLI_Launch (ffffffff7ffff820, ffffffff61003df8, 1, 0,
0, 100101500) + 2b0
0000000100000ec0 main (100000, ffffffff7ffff9f0, 400,
ffffffff7f400140, 100000be8, 100101500) + 160
0000000100000d28 _start (0, 0, 0, 0, 0, 100100ef0) + 108
------------ lwp# 2 / thread# 2 ---------------
ffffffff7ed4c2f0 __lwp_sigqueue (6, ffffffff7e2fcab0, 5, 5, 0, 0) + 8
ffffffff7eccab54 abort (1, ff8, 6, 0, 1bb5b4, c00) + 10c
ffffffff607c64a4 void os::abort(bool,void*,const void*) (32,
ffffffff5f1b7b5a, ffffffff60e47e00, 0, ffffffff7e2fcc60, 0) + 1a4
ffffffff60bbce24 void VMError::report_and_die(int,const char*,const
char*,void*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned
long) (1, 1, d9bec, e0000000, 1, ffffffff60e13ba5) + 17f4
ffffffff60bbb5b4 void VMError::report_and_die(Thread*,const
char*,int,const char*,const char*,void*) (0, ffffffff5ef7d278, 14a,
ffffffff5ef7d598, ffffffff5ef7d570, ffffffff7e2fd1c0) + 34
ffffffff5f99ff30 void report_vm_error(const char*,int,const
char*,const char*,...) (ffffffff5ef7d278, 14a, ffffffff5ef7d598,
ffffffff5ef7d570, 0, ffffffff60e13b4c) + 70
ffffffff5fa98f14 void frame::init(long*,unsigned char*,CodeBlob*)
(ffffffff7e2fd2b0, ffffffff7e2fcae1, ffffffff607d75e0, 0, 0, 0) + 54
ffffffff607d7624 frame os::current_frame() (ffffffff7e2fde20, 16a0a8,
ffffffff60f0caa8, 16a000, ffffffff60d81aa8, 18b000) + 44
ffffffff60bb9bd8 void VMError::report(outputStream*,bool)
(ffffffff60f0d2d0, 1, 22f, ffffffff60f0caa0, ffffffff5f2bf678,
ffffffff60f0caa0) + 1348
ffffffff60bbc0d0 void VMError::report_and_die(int,const char*,const
char*,void*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned
long) (ffffffff60f0d7b7, ffffffff60f0d768, 1, fffffffffe53e6c8, 4, 0) + aa0
ffffffff60bbb5b4 void VMError::report_and_die(Thread*,const
char*,int,const char*,const char*,void*) (0, ffffffff5ef7d278, 14a,
ffffffff5ef7d598, ffffffff5ef7d570, ffffffff7e2fe3b0) + 34
ffffffff5f99ff30 void report_vm_error(const char*,int,const
char*,const char*,...) (ffffffff5ef7d278, 14a, ffffffff5ef7d598,
ffffffff5ef7d570, 0, ffffffff60e13b4c) + 70
ffffffff5fa98f14 void frame::init(long*,unsigned char*,CodeBlob*)
(ffffffff7e2fe4a0, ffffffff7e2fdcd1, ffffffff607d75e0, 0, 0, 0) + 54
ffffffff607d7624 frame os::current_frame() (ffffffff7e2ff040, 16a0a8,
ffffffff7e200000, 16a000, ffffffff60d81aa8, 100000) + 44
ffffffff60bb9b38 void VMError::report(outputStream*,bool)
(ffffffff60f0d2d0, 1, 0, ffffffff7e300000, ffffffff5f2bf678,
ffffffff60f0caa0) + 12a8
ffffffff60bbc0d0 void VMError::report_and_die(int,const char*,const
char*,void*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned
long) (ffffffff60e47e00, 18b828, 18bcc0, ffffffff607dcc60, 4,
ffffffff60e47e00) + aa0
ffffffff60bbb5b4 void VMError::report_and_die(Thread*,const
char*,int,const char*,const char*,void*) (0, ffffffff5ed792c8, 296,
ffffffff5ed79310, ffffffff5ed79298, ffffffff7e2ff5a0) + 34
ffffffff5f99ff30 void report_vm_error(const char*,int,const
char*,const char*,...) (ffffffff5ed792c8, 296, ffffffff5ed79310,
ffffffff5ed79298, ffffffff7e100240, ffffffff60e13b4c) + 70
ffffffff5f3505c4 Thread*Thread::current() (0, 8, 0, ffffffff60d81aa8,
0, 0) + 64
ffffffff6091f190 char*resource_allocate_bytes(unsigned
long,AllocFailStrategy::AllocFailEnum) (c8, 0, 3ffe8df0, 0, 19f85c,
ff0000) + 10
ffffffff6055ca18
outputStream*create_log_stream(LogLevel::type,LogTagSet*) (3,
ffffffff60f12130, ffffffff7ee87260, ffffffff7ee86000, 3ffe8df0,
ffffffff60d81aa8) + 18
ffffffff60c0c8e0 int VM_Version::platform_features(int) (2f, 6, c6000,
ffffffff5f2e97e8, ffffffff60d81aa8, 73) + 1e0
ffffffff60c0f82c int VM_Version::determine_features() (16000, 18000,
1fff, ffffffff60d81aa8, 0, 4000) + 5c
ffffffff607b1160 void os::init_before_ergo() (16, ffffffff60e146f8,
ffffffff60d81aa8, 92c50, 1000, 2000) + d0
ffffffff60b060a8 int Threads::create_vm(JavaVMInitArgs*,bool*)
(ffffffff7e2ffe58, ffffffff7e2ffd9b, 0, a9c00, 0, ffffffff60d81aa8) + a8
ffffffff5fe5bbc0 int JNI_CreateJavaVM_inner(JavaVM_**,void**,void*)
(ffffffff7e2fff30, ffffffff7e2fff28, ffffffff7e2ffe58, c00, 10b400,
ffffffff60d81aa8) + 100
ffffffff61009358 InitializeJVM (ffffffff7e2fff30, ffffffff7e2fff28,
ffffffff5fe5c180, ffffffff7ee8f8cc, ffffffff7e100240, 0) + f8
ffffffff61006b84 JavaMain (ffffffff7fffe9a0, ffffffff5fe5b9b0,
ffffffff5fe5c180, ffffffff61006b30, 0, 1) + 54
ffffffff7ed47328 _lwp_start (0, 0, 0, 0, 0, 0)
>> Is there a variant of this block of logging code that will work under
>> those circumstances?
>
> If we try to use UL too early we simply have to not use UL for that
> logging.
Well, the previous logging code worked so in principle it shouldn't be
too early...
--
Alan Burlison
--
More information about the hotspot-runtime-dev
mailing list