setting distinct core file names
Willem Jan Withagen
wjw at digiware.nl
Wed Nov 28 11:21:38 UTC 2018
On 28-11-2018 11:43, Willem Jan Withagen wrote:
> On 27-11-2018 21:46, Conrad Meyer wrote:
>> One (ugly) trick is to use multiple filesystem links to the script
>> interpreter, where the link names distinguish the scripts. E.g.,
>>
>> $ ln /bin/sh /libexec/my_script_one_sh
>> $ ln /bin/sh /libexec/my_script_two_sh
>> $ cat myscript1.sh
>> #!/libexec/my_script_one_sh
>> ...
>>
>> Cores will be dumped with %N of "my_script_one_sh."
>
> Neat trick... got to try and remember this.
> But it is not the shell scripts that are crashing...
>
> When running Ceph tests during Jenkins building some
> programs/executables intentionally crash leaving cores.
> Others (scripts) use some of these programs with correct input and
> should NOT crash. And test during startup and termination that there are
> no cores left.
>
> One jenkins test run takes about 4 hours when not executed in parallel.
> I'm testing 4 version multiple times a day to not have this huge list of
> PRs the go thru when testing fails.
>
> But the intentional cores and the failure cores here collide.
> And when I have a core program_x.core I can't tell if they are from a
> failure or from an intentional crash.
>
> Now if could tell per program how to name its core that would allow me
> to fix the problem, without overturning the complete Ceph testing
> infrastructure and still keep parallel tests.
>
> It would also help in that "regular" cores just keep going the way the
> are. So other application still have the same behaviour. And are still
> picked up by periodic processing.
So I read a bit more about the prcctl and prctl(the Linux variant) and
turns out that Linux can set PR_SET_DUMPABLE. And that is actually used
in some of the Ceph applications...
Being able to set this to 0 or 1 would perhaps be a nice start as well.
--WjW
> --WjW
>
>> Best,
>> Conrad
>> On Tue, Nov 27, 2018 at 9:29 AM Willem Jan Withagen <wjw at digiware.nl>
>> wrote:
>>>
>>> Hi,
>>>
>>> Looking at core(5) and sysctl it looks like these are system wide
>>> settings....
>>>
>>> Is there a possibility that a program can set its own corefile name (and
>>> path?)
>>>
>>> During parallel testing I'm running into these scripts that generate
>>> cores, but they end up all in the same location. But it would be nice if
>>> I could one way or another determine which file came from what script.
>>>
>>> But for that I would need to be able to set something like
>>> %N."script".core
>>> as the core name. I could then put that in then ENV of the script and
>>> the program would pick it up and set its own corefile name.
More information about the freebsd-hackers
mailing list