1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 <2021> 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: ASYN Module: Workaround for bug due to improper handling of signal in linux-gpib |
From: | Kuldeep Joshi via Tech-talk <tech-talk at aps.anl.gov> |
To: | Mark Rivers <rivers at cars.uchicago.edu>, tech-talk at aps.anl.gov |
Date: | Wed, 10 Feb 2021 13:15:08 +0000 |
Hi Kuldeep,
Have you been seeing this issue? If so, how hard is it to reproduce?
I looked at the bug report link in your message. At the end there are 2 comments:
*******************************************
Frank Mori Hess - 2015-04-04
This should be fixed in svn now. A change was required to the library-kernel interface, so both the library and kernel modules will have to be upgraded.
Andreas Huettel - 2015-04-07
I can confirm the fix, tested with a NI USB GPIB adapter. Perl scripts can be cancelled with CTRL-C and then started again, no visible problems anymore. Thanks!!!
*******************************************
So this suggests that the problem was fixed in the linux-gpib package almost 5 years ago.
If so, is it possible for you to upgrade to a more recent version?
Mark
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Kuldeep Joshi via Tech-talk <tech-talk at aps.anl.gov>
Sent: Wednesday, February 10, 2021 2:05 AM
To: tech-talk at aps.anl.gov
Subject: ASYN Module: Workaround for bug due to improper handling of signal in linux-gpib
Hello,
Can the workaround as suggested in this link https://sourceforge.net/p/linux-gpib/bugs/50/#85e8
be incorporated for the drvLinuxGpib.c in the ASYN module.
The workaround suggests to mask all the signals during call to ibrd() or ibwrt()
Thanks and regards,
Kuldeep
The text of the above link is reproduced as below
"When a program receives a signal while it is in a call to a linux-gpib driver it can happen that the application hangs. This is because for historic reasons the linux-gpib driver framework does not properly handle the return of -ERESTARTSYS from its device drivers. Unfortunately to fix this systematically in the package is a lot of work. The symptoms of a hang, due to signals, are that the program receiving the signal hangs, blocking other programs from accessing the device and in the console log you can find messages such
as:
agilent_82350b: write wait interrupted.
or
.../gpib/ni_usb/ni_usb_gpib.c: ni_usb_nonblocking_receive_bulk_msg: interrupted
"