RFR: JDK-8216529: in case of a crash, javac should print out the parameters passed to it
Vicente Romero
vicente.romero at oracle.com
Tue Jan 15 13:47:51 UTC 2019
On 1/14/19 7:38 PM, Liam Miller-Cushon wrote:
> My concern was mostly that users might forget to include the separate
> file in their report, and by the time it's triaged it's probably too
> late to get that information.
there is an early triage that could ask users for the file / parameters
plus the release file which could also be helpful to reproduce the issue
>
> Making it easy to copy-paste the arguments as part of the crash
> message could help, but I understand the concern about console spam.
> If you were to print a subset, the non-file options are probably the
> most interesting (especially non-standard options, as in e.g.
> JDK-8059453).
>
> But having the full list of arguments is even better. Maybe add a
> reminder to the diagnostic text to include the params file when
> reporting a bug (possibly in the "Include your program and the
> following diagnostic" part of msg.bug)?
I have modified the msg.bug to mention javac parameters too, see [1],
this version also prints the parameters to the output in case of error
[1] http://cr.openjdk.java.net/~vromero/8216529/webrev.02/
Thanks,
Vicente
>
> On Mon, Jan 14, 2019 at 4:05 PM Jonathan Gibbons
> <jonathan.gibbons at oracle.com <mailto:jonathan.gibbons at oracle.com>> wrote:
>
>
>
> On 01/14/2019 02:59 PM, Vicente Romero wrote:
>>
>>
>> On 1/14/19 4:20 PM, Jonathan Gibbons wrote:
>>> Do you mean the trimming done by jtreg? That will obviously
>>> only happen if the crash happens in the context of a test.
>>
>> no I saw that issue for bugs breaking the JDK build and I saw
>> that the output was incomplete
>
> It's still the case that what you describe is our internal
> infrastructure trimming the output, and most users will not suffer
> the same restrictions.
>
>>
>>>
>>> As a general solution, if you can't write the file, you could
>>> write the non-file options, and the first N files, to the
>>> console, for some suitable N. That being said, if you're just
>>> printing argv, you don't easily have the analysis of file vs
>>> non-file options, so it may just come down to print the first N
>>> args, for a different, bigger N.
>>
>> I tend to believe that the general case in which this will be
>> most useful will be cases with a large number of parameters, so I
>> tend to think that it should be better to generate no output
>> rather than generate an incomplete output. But I could be
>> convinced otherwise :)
>
> Maybe. "No output" means no way of guessing what the input was;
> "Some output" means you might at least show enough to show all the
> options, even if you don't show all the files. But either way, if
> you fail to write the output, you should report that to the
> console, so that folk who are expecting to see the output and not
> surprised when it is not generated.
>
>>
>>>
>>> -- Jon
>>
>> Vicente
>>
>>>
>>>
>>>
>>> On 01/14/2019 12:03 PM, Vicente Romero wrote:
>>>> Hi Liam,
>>>>
>>>> On 1/14/19 2:38 PM, Jonathan Gibbons wrote:
>>>>>
>>>>> The intent is the crash report should contain the path of the
>>>>> file, and the file should be in "@-file" format, to make it
>>>>> easier to rerun the compilation using the file with `javac
>>>>> @javac.<date>.args`. If an error occurs when writing to the
>>>>> file, the info could be written to the console, but note that
>>>>> there could be a huge amount of output, depending how many
>>>>> files are specified on the command-line.
>>>>>
>>>>
>>>> right, what Jon says. I decided not to write to the console
>>>> because if the output is huge, most of it will be lost as it
>>>> will be trimmed thus reducing the usefulness of it.
>>>>
>>>>> -- Jon
>>>>>
>>>>
>>>> Vicente
>>>>
>>>>> On 1/14/19 11:22 AM, Liam Miller-Cushon wrote:
>>>>>> Hi Vicente,
>>>>>>
>>>>>> This looks useful.
>>>>>>
>>>>>> Did you consider printing the args to stderr instead of
>>>>>> writing them to a file, maybe as part of msg.bug? If I'm
>>>>>> reading the patch correctly it currently uses a file
>>>>>> `javac.<date>.args` in the directory javac is running from,
>>>>>> which users won't necessarily know about to include in crash
>>>>>> reports, and which won't succeed if javac doesn't have
>>>>>> permissions to create files in the working directory.
>>>>>>
>>>>>> On Mon, Jan 14, 2019 at 10:51 AM Vicente Romero
>>>>>> <vicente.romero at oracle.com
>>>>>> <mailto:vicente.romero at oracle.com>> wrote:
>>>>>>
>>>>>> Please review the fix for enhancement [1] at [2]. The
>>>>>> idea of this
>>>>>> enhancement is to print out to a file the arguments
>>>>>> passed to javac is
>>>>>> there is a fatal error or if a hidden option is passed to
>>>>>> the compiler.
>>>>>> This could be very helpful to reproduce some bugs
>>>>>> reported by users.
>>>>>>
>>>>>> Thanks,
>>>>>> Vicente
>>>>>>
>>>>>> PS, thanks to Jon for offline feedback an suggestions
>>>>>>
>>>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8216529
>>>>>> [2]
>>>>>> http://cr.openjdk.java.net/~vromero/8216529/webrev.00/
>>>>>> <http://cr.openjdk.java.net/%7Evromero/8216529/webrev.00/>
>>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20190115/f9d610ee/attachment.html>
More information about the compiler-dev
mailing list