[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: wait skips signals but first one
From: |
Chet Ramey |
Subject: |
Re: wait skips signals but first one |
Date: |
Mon, 8 Jan 2024 17:09:19 -0500 |
User-agent: |
Mozilla Thunderbird |
On 1/5/24 2:46 PM, Mykyta Dorokhin wrote:
Bash Version: 5.1
Patch Level: 16
Release Status: release
Description:
I'm working on a custom project within the Yocto framework. After a recent
build system update, the bash
version updated to 5.1.16. Subsequently, I've noticed peculiar side effects
related to using 'wait' and signals.
Below is a script demonstrating the issue.
The problem lies in the fact that, in the case of waiting on 'wait' in the
script, only the first signal
interrupts 'wait'; subsequent signals of the same type do not interrupt 'wait',
and it remains blocked.
I manually switched bash versions and compiled a table (bash version - Yocto
version):
5.0.18 (dunfell): No issues
5.1.4 (hardknott): Has issues
5.1.8 (honister): Has issues
5.1.16 (kirkstone): Has issues
5.2.21 (master): Has issues
Meanwhile, in my home desktop distribution, Ubuntu 22.04, I tested the same
scenario, and everything works correctly; signals are processed as expected.
My assumption is that the problem may be related to my Yocto build being
intended for a 32-bit device, and perhaps the bug only manifests in this case.
The only way I could see a potential problem was if you're using a 32-bit
build on a 64-bit device.
I consider this a significant issue. Could you confirm whether any testing has
been conducted on 32-bit platforms,
as it seems that everything works correctly on 64-bit desktops?
I don't have any 32-bit platforms available for testing, but I have a hard
time believing that it would make a difference.
Like you, I can't reproduce it on the desktop platforms I have available
right now.
The bash devel git branch has fairly fine granularity. If you can automate
the signal sending somewhat, maybe by having a child process send signals
to $$, you could use your script and `git bisect' to find the commit where
the behavior changed. bash-5.0 was frozen 12/31/2018, and bash-5.1 was
frozen 12/14/2020, so that should get you started with the devel branch
commits you want to inspect.
http://git.savannah.gnu.org/cgit/bash.git/log/?h=devel
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
OpenPGP_signature.asc
Description: OpenPGP digital signature