You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If file locking isn't available the process shouldn't hang. It should die early ( should locking be absolutely necessary ) or timeout after a reasonable amount of time. This holds up pipelines when a user inadvertently runs on an unsupported filesystem.
Example minimal input triggering the problem
Any input
What GenomeTools version are you reporting an issue for (as output by gt -version)?
genometools-1.5.10/bin/gt -version
/home/rhubley/src/genometools-1.5.10/bin/gt (GenomeTools) 1.5.10
Copyright (c) 2003-2016 G. Gremme, S. Steinbiss, S. Kurtz, and CONTRIBUTORS
Copyright (c) 2003-2016 Center for Bioinformatics, University of Hamburg
See LICENSE file or http://genometools.org/license.html for license details.
Used compiler: cc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
Compile flags: -g -Wall -Wunused-parameter -pipe -fPIC -Wpointer-arith -Wno-unknown-pragmas -O3 -Werror
Did you compile GenomeTools from source? If so, please state the make parameters used.
make threads=yes cairo=no
What operating system (e.g. Ubuntu, Mac OS X), OS version (e.g. 15.10, 10.11) and platform (e.g. x86_64) are you using?
RedHat 7.6 - 4.1.12-124.24.3.el7uek.x86_64
NFS V3 with advisory locking through NLM
NOTE: Although I haven't tested it...I suspect NFS V4 fixes this problem.
The text was updated successfully, but these errors were encountered:
The question is whether we really need it. AFAICS explicit locking is done via fcntl() wrapped in gt_xflock_with_op(), which is only used in gt_fa_lock*(), which in turn is only used in GtMD5Tab.
Maybe there's an easier solution that avoids all the fragility of trying to lock over NFS (i.e. might a lockfile probably be sufficient?)
If the only reason you are locking is to ensure the correct calculation or validation of the MD5 checksum it is probably not necessary at all. How likely is there to be a race condition on the modification/use of these files? But, as you say a simple lockfile would suffice.
EDIT: This could be a problem with the 7.6 kernel as other NFS V3 systems here do not exhibit the blocking behavior. We are going to upgrade to 7.7 at least and see if that makes a difference. I would however, suggest pursuing relaxing the locking behavior unless it's necessary. Our site may not be rare and there have been many problems reported with file-locking over NFS prior to V4 (which many haven't upgraded to yet).
Problem description
gt ltrharvest can hang in a rpc_wait_bit_killable state indefinitely under certain circumstances without any obvious timeout-to-failure.
Exact command line call triggering the problem
If file locking isn't available the process shouldn't hang. It should die early ( should locking be absolutely necessary ) or timeout after a reasonable amount of time. This holds up pipelines when a user inadvertently runs on an unsupported filesystem.
Example minimal input triggering the problem
Any input
What GenomeTools version are you reporting an issue for (as output by
gt -version
)?genometools-1.5.10/bin/gt -version
/home/rhubley/src/genometools-1.5.10/bin/gt (GenomeTools) 1.5.10
Copyright (c) 2003-2016 G. Gremme, S. Steinbiss, S. Kurtz, and CONTRIBUTORS
Copyright (c) 2003-2016 Center for Bioinformatics, University of Hamburg
See LICENSE file or http://genometools.org/license.html for license details.
Used compiler: cc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1)
Compile flags: -g -Wall -Wunused-parameter -pipe -fPIC -Wpointer-arith -Wno-unknown-pragmas -O3 -Werror
Did you compile GenomeTools from source? If so, please state the
make
parameters used.make threads=yes cairo=no
What operating system (e.g. Ubuntu, Mac OS X), OS version (e.g. 15.10, 10.11) and platform (e.g. x86_64) are you using?
RedHat 7.6 - 4.1.12-124.24.3.el7uek.x86_64
NFS V3 with advisory locking through NLM
NOTE: Although I haven't tested it...I suspect NFS V4 fixes this problem.
The text was updated successfully, but these errors were encountered: