Stream: IG creation
Topic: Sushi integration fails due to SIGTERM
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
Keith Boone (Jul 30 2020 at 13:44):
Is there a way to control the SUSHI timeout from the IG configuration?
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
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?
Keith Boone (Jul 30 2020 at 14:03):
I just have a little automatic breeding pond ...
John Moehrke (Jul 30 2020 at 14:06):
clearly you need a predator to keep population down. a couple of sharks or alligators.
John Moehrke (Jul 30 2020 at 14:14):
... or a virus...
John Moehrke (Jul 30 2020 at 14:16):
... a one minute timeout does seem to not be very sane...
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
John Moehrke (Jul 30 2020 at 14:29):
a chain of lakes?
David Pyke (Jul 30 2020 at 14:30):
a sushi train.
John Moehrke (Jul 30 2020 at 14:32):
ah, with multiple chefs filling the sushi train
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.
David Pyke (Jul 30 2020 at 15:12):
That would set a dangerous precedent
Chris Moesel (Jul 30 2020 at 15:30):
I'm curious @Keith Boone -- how long does it take SUSHI to process your project locally?
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
Keith Boone (Jul 30 2020 at 16:04):
59 seconds.
Jose Costa Teixeira (Jul 30 2020 at 16:50):
that's close.
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.
Jose Costa Teixeira (Jul 30 2020 at 16:51):
is this an IG with lots of stuff on it?
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.
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
David Pyke (Jul 30 2020 at 16:53):
b please
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
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
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).
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?
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.
Jose Costa Teixeira (Jul 30 2020 at 19:43):
(i'll follow up on shorthand, this is a sushi thing)
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?
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.
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
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
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.
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
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).
Grahame Grieve (Aug 03 2020 at 21:55):
@Keith Boone I managed to get this out
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.
Grahame Grieve (Aug 10 2020 at 20:18):
what's your output look like?
Last updated: Apr 12 2022 at 19:14 UTC