#3251 slashdLog() deadlock on flock()

Slash 2.5/3.0
Daemons (49)

3:52:19:OliB: if "print" emits a warning by Perl to STDERR, it is
redirected to doLog() again and causes
3:52:51:OliB: a deadlog waiting on flock($fh, LOCK_EX);
4:17:45:jamie: OliB: hmmmm. what version of Slash?
4:18:52:OliB: R_2_5_0_41
4:19:13:jamie: you're right of course. strange we never triggered
that (that we know of).
4:19:23:jamie: under what conditions are you seeing print want to
emit an error to stderr?
4:19:39:OliB: I use "wide" characters internally and perl
sometimes emits a "Wide character in print at ..."
4:20:19:OliB: rather non-standard for a slash setup and obscure,
but there could be other Perl warnings that trigger this, too.
4:20:19:jamie: pudge: read the above... what do you think is the
right solution for this? turn off warnings for those 3 lines? a global
var that indicates this pid already has the lock and shouldn't try to
get it again?
4:21:18:OliB: isn't appending atomic? why the exclusive lock ?
4:21:33:jamie: no, it's not atomic
4:21:52:OliB: that's a pity.
4:22:29:OliB: I'm currently trying 'use open OUT => ":utf8";' to
see if it supresses my warning
4:22:35:jamie: pudge happens to be looking at this part of the
code today :)
4:23:25:OliB: when one task deadlocks this way, the whole slashd
blocks, as nobody can log anymore
4:24:12:OliB: until a signal is received and flock unblocks.
4:28:12:jamie: try putting a "local $^W = 0;" just before the flock,
see if that solves it for you
4:28:18:jamie: we'll try to get a better fix committed to cvs soon
4:31:11:OliB: my warning is output, regarless of -w.
4:31:46:OliB: so I'll be watching CVS ;-)


  • Chris Nandor

    Chris Nandor - 2005-02-02

    Logged In: YES

    I am loathe to attempt to fix this without a test case. Any way we can
    get in touch with OliB?

  • Chris Nandor

    Chris Nandor - 2005-02-02
    • assigned_to: pudge --> jamiemccarthy
  • Jamie McCarthy

    Jamie McCarthy - 2005-03-08
    • assigned_to: jamiemccarthy --> pudge

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks