Bug 46957

Summary: [Patch] Bogus return value (-1==ERESTART) of ksem_close() causes infinite loop.
Product: Base System Reporter: Stefan Eßer <se>
Component: kernAssignee: Alfred Perlstein <alfred>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 5.0-CURRENT   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description Stefan Eßer freebsd_committer freebsd_triage 2003-01-10 19:50:01 UTC
The configure script for apache hung in the test for sem_open().
Truss revealed, that ksem_close() was being called in a tight loop.
The reason is a hard-coded return value of -1 in ksem_sem_close, which
becomes the result of ksem_close. Since this value is interpreted as
ERESTART on return from the system call, the call is repeated infinitely.

Fix: Apply the following patch:
How-To-Repeat: cd /usr/ports/www/apache2
make configure
Comment 1 Stefan Eßer freebsd_committer freebsd_triage 2003-01-10 22:09:11 UTC
Responsible Changed
From-To: gnats-admin->alfred

Assign my PR to original author of the affected function.
Comment 2 Alfred Perlstein freebsd_committer freebsd_triage 2003-06-23 20:19:34 UTC
State Changed
From-To: open->closed

Fixed in rev 1.4 of uipc_sem.c.  Thank you.