#5 denoise seg faults on SMP machines!

closed-fixed
nobody
None
5
2004-03-06
2003-11-05
Anonymous
No

First, thanks for a really great program! It works
miracles on my LPs - fortunately mostly in good
condition, but it is really nice to hear them without
clicks and other associated artifacts.

I use gwc on a dual Athlon MP machine with Suse 8.2.
But it seg faults when removing noise. I've tracked
this down to the stack being too small, which in turn
appears to be related to using libpthreads, but only on
an SMP machine! It turns out that when main() is
called, GWC has a stack limit of 2MB on an SMP
machine. My little test program, without using
threads, has no such limit on the same machine. The
de-noise operation requires about 3.5MB of stack
space, I have determined experimentally.

Having said all that, the cure is actually fairly simple.
It only requires adding a call to setrlimit() to set the
stack size to 4MB. This is done at the beginning of
"main()". I've attached the relevant code. While I
have not tried all the functions within GWC, I can now
denoise on this SMP machine. My code actually
checks to see if the limit is smaller than 4MB before
setting, thus it does nothing on a uniprocessor
system.

Again, thanks for a truly useful piece of software,

Lindsay Harris
lindsay@bluegum.com

[I am a sourceforge.net member, but have forgotten
the password, and am awaiting a new one to arrive]

Discussion

  • Modifications to gwc.c for SEGFAULT

     
    Attachments
    INC
  • Jeff Welty
    Jeff Welty
    2004-03-06

    • status: open --> open-fixed
     
  • Jeff Welty
    Jeff Welty
    2004-03-06

    • status: open-fixed --> closed-fixed