Closed keiranmraine closed 2 years ago
Hello @keiranmraine ,
Thanks you for looking into this and proposing a solution!
I have successfully reproduced what you mentioned. We are looking more into this to see if we can integrate this solution to VEP.
Best regards, Nakib
Hello @keiranmraine ,
We have some update regarding this issue.
Firstly, the core reason we are getting this issue is because of MySQL. It is default behavior of MySQL to mask SIGPIPE -
To avoid aborting the program when a connection terminates, MySQL blocks SIGPIPE on the first call to mysql_library_init(), mysql_init(), or mysql_connect().
And gzip does not like it. It does not seem to be a problem as long as perl handles it properly (some language like python may not like it at all). So, I have a test with several supported Perl version and the zipped and unzipped input give the same result. This this warning is false alarm.
We can make gzip to be the least preferred method but it would be counter-productive because of the performance issue. The warning can be easily made silent by unmasking SIGPIPE but caveat is that in VEP a db connection may also initiate later on (e.g - in some plugins). For now, we are keeping gzip as the second preferred method.
Thanks again for pointing out the issue.
Best regards, Nakib
Describe the issue
Same as #720 (
gzip: stdout: Broken pipe
), however I am reporting the likely cause:https://github.com/Ensembl/ensembl-vep/blob/5aa4f5c8bdcdeb4dc27ba114497601dacdc66e73/modules/Bio/EnsEMBL/VEP/Utils.pm#L432
It is likely that the file handle is being destroyed before the gzip stream is exhausted/closed which would result in this type of error. However it's difficult to create a minimal reproducer as this is likely caused by object destroy complexity.
It's possible that making
IO::Uncompress::Gunzip
the preferred method could remove this issue, however I would anticipate a performance reduction.(@ThomasSClarke for info)
Additional information
Please fill in the following sections to help us find the source of your issue as quickly as possible.
System
info.txt
belowFull VEP command line
Full error message
Warning only: