Project

General

Profile

Bug #1304

Mac OS X 10.3 select/poll event-handler issues

Added by Anonymous about 12 years ago. Updated about 3 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
core
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Missing in 1.5.x:

Description

As noted in the configuration file and in other places the select/poll functionality with lighttpd on Mac OS X 10.3 appears to be buggy or broken though I couldn't quickly find reference to this anywhere else. It is not apparent whether this is a lighttpd or Mac OS X bug.

Not reading the documentation I did not attempt to use the event-handler of "freebsd-kqueue" has it states plainly, so I started to look into the issue a little bit. I've included such information here to create a ticket as place-holder of the known-issue.

I did appear to notice a pattern in all of this. What appeared to be happening (and was readily reproducible with the client that was retreiving files) was:

  1. Requests would work fine until..
  2. Two (per observations and not necessarily in a row) requests that terminated the socket early from the client side came in. This results in a SIGPIPE on the write() calls.
  3. At this point a SIGABRT would be triggered from within server because of an invalid fd (line 171 of fdevent.c) and quit.

In the code it came down to (when the condition had arisen again I think because of connections that had been terminated early from the client side) source:tags/lighttpd-1.4.16/src/server.c@HEAD#L1316 ({{{fdevent_event_get_fd()}}}) call returning -1 which was subsequently getting caught by {{{fdevent_get_handler()}}} on the next line. I did not investigate why it was returning -1.

This bug may want to be closed and archived just for informational purposes - using kqueue has appeared to solve the issue for me.

History

#1

Updated by gstrauss about 3 years ago

  • Description updated (diff)
  • Status changed from New to Fixed
  • Assignee deleted (jan)

Marking fixed per above note. The asserts in question appear to have been removed from fdevent.c some time ago.

Also available in: Atom