FHIR Chat · Sushi integration fails due to SIGTERM · IG creation

Stream: IG creation

Topic: Sushi integration fails due to SIGTERM


view this post on Zulip Keith Boone (Jul 30 2020 at 13:44):

Last two builds have run fine on my local system with most recent builds of SUSHI and FHIR IG Publisher. However, the online publisher has twice failed this build. I've also verified that SUSHI runs standalone over this project without errors. The error report from the IG Builder is that the process exited with an exit code of 143. That's never thrown directly by SUSHI, but matches exactly the exit code used by a shell on receiving SIGTERM (signal 15). I'm assuming that SUSHI is given a 1 minute timeout, and that seems insufficient for it to process 143 SUSHI files.

FHIR Bot said:

HL7/v2-to-fhir: master rebuilt
Commit: Rebuild w/ Proposed Extensions (kboone) :thumbs_down:
Details: build logs | debug

view this post on Zulip Keith Boone (Jul 30 2020 at 13:44):

Is there a way to control the SUSHI timeout from the IG configuration?

view this post on Zulip Keith Boone (Jul 30 2020 at 14:02):

Answered that for myself, no, it is a fixed timeout. Can you give us a way to control the timeout value in configuration so that when checking in a project with a large number of FSH files, this problem can be addressed in the project configuration. cc: @Josh Mandel @Grahame Grieve

view this post on Zulip John Moehrke (Jul 30 2020 at 14:02):

sounds like your fish are out of control... sure you didn't get an invasive species boom?

view this post on Zulip Keith Boone (Jul 30 2020 at 14:03):

I just have a little automatic breeding pond ...

view this post on Zulip John Moehrke (Jul 30 2020 at 14:06):

clearly you need a predator to keep population down. a couple of sharks or alligators.

view this post on Zulip John Moehrke (Jul 30 2020 at 14:14):

... or a virus...

view this post on Zulip John Moehrke (Jul 30 2020 at 14:16):

... a one minute timeout does seem to not be very sane...

view this post on Zulip David Pyke (Jul 30 2020 at 14:29):

Can you create a chain of sushi runs to do it? That would require manual copying into the IG folders but the timeout wouldn't be a problem

view this post on Zulip John Moehrke (Jul 30 2020 at 14:29):

a chain of lakes?

view this post on Zulip David Pyke (Jul 30 2020 at 14:30):

a sushi train.

view this post on Zulip John Moehrke (Jul 30 2020 at 14:32):

ah, with multiple chefs filling the sushi train

view this post on Zulip Keith Boone (Jul 30 2020 at 15:09):

Workarounds I have, but that causes challenges for other editors. And I'd just like the software to work.

view this post on Zulip David Pyke (Jul 30 2020 at 15:12):

That would set a dangerous precedent

view this post on Zulip Chris Moesel (Jul 30 2020 at 15:30):

I'm curious @Keith Boone -- how long does it take SUSHI to process your project locally?

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 15:31):

Keith Boone said:

Is there a way to control the SUSHI timeout from the IG configuration?

i don't think so

view this post on Zulip Keith Boone (Jul 30 2020 at 16:04):

59 seconds.

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 16:50):

that's close.

view this post on Zulip Keith Boone (Jul 30 2020 at 16:51):

Yeah, and if I hammer my system or perhaps change the process priority, I'll bet I can get it to fail in Publisher in the same way.

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 16:51):

is this an IG with lots of stuff on it?

view this post on Zulip Keith Boone (Jul 30 2020 at 16:52):

Yeah. FSH files for every V2 data type, message and segment being worked on in the V2-to-fhir project.

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 16:52):

in other words, should we try
a) just give it more time
b) make it configurable so that power users can still enjoy some flexibility

view this post on Zulip David Pyke (Jul 30 2020 at 16:53):

b please

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 16:53):

a would be the simplest - i guess it's here
https://github.com/HL7/fhir-ig-publisher/blob/master/org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java#L501

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 16:54):

if b) i'd love to help but I can't be trusted with java for that

view this post on Zulip Keith Boone (Jul 30 2020 at 19:21):

The problem is even nastier in that if you are using SUSHI, the ig.ini that the Publisher uses is created by SUSHI, and so what's in there isn't necessarily the most up to date value, so the only recourse for me to deal with this locally is to bump the value in a CUSTOM version of publisher (and I'm now running into this problem with SANER Builds as well).

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 19:30):

Keith Boone said:

The problem is even nastier in that if you are using SUSHI, the ig.ini that the Publisher uses is created by SUSHI, and so what's in there isn't necessarily the most up to date value, so the only recourse for me to deal with this locally is to bump the value in a CUSTOM version of publisher (and I'm now running into this problem with SANER Builds as well).

So sushi overwrites the ig.ini even if you start with one?

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 19:42):

I think this problem is only going to get bigger - @Chris Moesel I posted this on the shorthand - we should really have a better separation between what is input and output for sushi.

view this post on Zulip Jose Costa Teixeira (Jul 30 2020 at 19:43):

(i'll follow up on shorthand, this is a sushi thing)

view this post on Zulip Chris Moesel (Jul 30 2020 at 20:04):

@Keith Boone -- w/ SUSHI 0.13.0 and above, if you don't include a template property in config.yaml, SUSHI will not generate an ig.ini file. If you have a fsh/ig-data/ig.ini file present, SUSHI will copy that to the root folder (where IG Publisher will find it). If you do not specify template in config.yaml and you do not have a fsh/ig-data/ig.ini file present, SUSHI will do nothing w/ ig.ini at all. In this case, you can leave your own ig.ini checked into the root folder if you wish and manage it entirely yourself... Does that address your problem or am I missing something?

view this post on Zulip John Moehrke (Jul 30 2020 at 20:06):

I use FSHOnly and it keeps things separate quite nicely. FSH folder only is used to create input/ conformance files. sushi does nothing else.

view this post on Zulip John Moehrke (Jul 30 2020 at 20:07):

further the hand edited XML conformance resources I have written are in the input/resources; so there is no conflict with what sushi creates as sushi only creates things in other directories that I don't commit to github

view this post on Zulip Grahame Grieve (Jul 30 2020 at 20:57):

from the next release, you can create a file fsh.ini as a sibling to the fsh directory which has the following content:

[FSH]
timeout=NN

where NN is in seconds

view this post on Zulip Keith Boone (Jul 30 2020 at 23:57):

Completely, even if in some cases it would lead to indeterminate settings, it’s doable, just not pretty.

view this post on Zulip Keith Boone (Jul 30 2020 at 23:58):

Grahame Grieve said:

from the next release, you can create a file fsh.ini as a sibling to the fsh directory which has the following content:

[FSH]
timeout=NN

where NN is in seconds

Awesome! TY

view this post on Zulip Keith Boone (Aug 03 2020 at 17:18):

Any clue when that release is going to get pushed out? I've got two ballots that are depending on this (one is out of cycle, another due this week).

view this post on Zulip Grahame Grieve (Aug 03 2020 at 21:55):

@Keith Boone I managed to get this out

view this post on Zulip Keith Boone (Aug 10 2020 at 20:08):

Not working, see your e-mail. Basically, it's looking for fsh.ini in the parent of the parent of the ig.ini folder, because you call getDirectoryForFile() twice, at least as best I can tell. I'm still getting timeouts at one minute when I specify 180 seconds.

view this post on Zulip Grahame Grieve (Aug 10 2020 at 20:18):

what's your output look like?


Last updated: Apr 12 2022 at 19:14 UTC