[Bug 924873] [NEW] Many unnecessary rt_sigprocmask syscalls

Jo Liss 924873 at bugs.launchpad.net
Wed Feb 1 13:06:35 UTC 2012


Public bug reported:

Package: Bash 4.2-0ubuntu4
bash --version: GNU bash, version 4.2.10(1)-release (x86_64-pc-linux-gnu)

The command

     strace -o strace bash -i -c :

reports many rt_sigprocmask calls:

....
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/home/ubuntu/.bash_history", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0600, st_size=1922, ...}) = 0
brk(0x1f68000)                          = 0x1f68000
read(3, "echo bar\n#1328099029\necho 'f\n#13"..., 1922) = 1922
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat("/home/ubuntu/.set-locale", 0x7fffe1ffcb10) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
...

This likely has a performance impact. See e.g.
http://timetobleed.com/fix-a-bug-in-rubys-configurein-and-get-a-30
-performance-boost/ which describes (presumably) the same problem with
Ruby.

This might be fixable by changing the build options.

** Affects: bash (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to bash in Ubuntu.
https://bugs.launchpad.net/bugs/924873

Title:
  Many unnecessary rt_sigprocmask syscalls

Status in “bash” package in Ubuntu:
  New

Bug description:
  Package: Bash 4.2-0ubuntu4
  bash --version: GNU bash, version 4.2.10(1)-release (x86_64-pc-linux-gnu)

  The command

       strace -o strace bash -i -c :

  reports many rt_sigprocmask calls:

  ....
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  open("/home/ubuntu/.bash_history", O_RDONLY) = 3
  fstat(3, {st_mode=S_IFREG|0600, st_size=1922, ...}) = 0
  brk(0x1f68000)                          = 0x1f68000
  read(3, "echo bar\n#1328099029\necho 'f\n#13"..., 1922) = 1922
  close(3)                                = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  stat("/home/ubuntu/.set-locale", 0x7fffe1ffcb10) = -1 ENOENT (No such file or directory)
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
  rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
  ...

  This likely has a performance impact. See e.g.
  http://timetobleed.com/fix-a-bug-in-rubys-configurein-and-get-a-30
  -performance-boost/ which describes (presumably) the same problem with
  Ruby.

  This might be fixable by changing the build options.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/bash/+bug/924873/+subscriptions




More information about the foundations-bugs mailing list