RFR(S): *NEED SECOND* JDK-8157236 - attach on ARMv7 fails with com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file

Dmitry Samersoff dmitry.samersoff at oracle.com
Mon Aug 15 08:49:33 UTC 2016


On 2016-08-12 12:04, Dmitry Samersoff wrote:
> David,
> 
> Updated webrev is:
> 
> http://cr.openjdk.java.net/~dsamersoff/JDK-8157236/webrev.04/
> 
> Windows is absolutely different story that requires significant efforts
> to reproduce error conditions and test changes. Also it has nothing to
> do with ARMv7.
> 
> So I would prefer to address windows issues separately either as a part
> of JDK-8159799 or as a separate CR.
> 
> -Dmitry
> 
> On 2016-08-12 03:24, David Holmes wrote:
>> Hi Dmitry,
>>
>> On 12/08/2016 2:55 AM, Dmitry Samersoff wrote:
>>> David,
>>>
>>> Please see updated webrev.
>>>
>>> http://cr.openjdk.java.net/~dsamersoff/JDK-8157236/webrev.03/
>>>
>>> I didn't touch windows version because it quite different from *NIX one.
>>
>> Do we ever see failures on Windows? Is so we should add diagnostics
>> there too even if they are different to *NIX.
>>
>> I would still like to see what file it is working with. We need some
>> logging in here:
>>
>> bool AttachListener::is_init_trigger() {
>>    if (init_at_startup() || is_initialized()) {
>>      return false;               // initialized at startup or already
>> initialized
>>    }
>>    char fn[PATH_MAX+1];
>>    sprintf(fn, ".attach_pid%d", os::current_process_id());
>>    int ret;
>>    struct stat64 st;
>>    RESTARTABLE(::stat64(fn, &st), ret);
>>    if (ret == -1) {
>> +    log ("failed to find attach file: %s, trying alternate", fn)
>>      snprintf(fn, sizeof(fn), "%s/.attach_pid%d",
>>               os::get_temp_directory(), os::current_process_id());
>>      RESTARTABLE(::stat64(fn, &st), ret);
>> +    if (ret == -1) {
>> +       log("failed to find attach file: %s", fn);
>> +    }
>>    }
>>
>> All failure paths need to show us what it was that failed.
>>
>> typos: trigerred -> triggered
>>
>> Thanks,
>> David
>>
>>> -Dmitry
>>>
>>> On 2016-08-08 02:40, David Holmes wrote:
>>>> Hi Dmitry,
>>>>
>>>> On 5/08/2016 7:25 PM, Dmitry Samersoff wrote:
>>>>> Everybody,
>>>>>
>>>>> Please review the fix:
>>>>>
>>>>>   http://cr.openjdk.java.net/~dsamersoff/JDK-8157236/webrev.02/
>>>>>
>>>>> Problem:
>>>>>   Tests fail intermittently because it can't attach to child process,
>>>>>   these attach failures is hard to debug because attach framework
>>>>>   doesn't provide enough diagnostic information.
>>>>>
>>>>> Solution:
>>>>>
>>>>>   a) Increase attach timeout
>>>>>   b) Slightly change attach loop to save a bit of CPU power.
>>>>>   c) Add some logging to attach listener.
>>>>>
>>>>> It's just a first step in this direction. Complete cleanup of attach
>>>>> code (remove LinuxThreads support and convert all printing to UL) is
>>>>> not
>>>>> a goal of this fix - I'll file a separate CR for it.
>>>>
>>>> I still think you need more logging now to aid in debugging these cases.
>>>> In particular we want to be able to verify that the path of the attach
>>>> file is what we expect in all cases ie whether we find  the .attach_pid
>>>> file in cwd or whether we are looking in temp directory, and whether we
>>>> ultimately succeed or fail.
>>>>
>>>> Plus whatever you do now should be done consistently for all platforms.
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>>> -Dmitry
>>>>>
>>>
>>>
> 
> 


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.


More information about the hotspot-runtime-dev mailing list