[Mono-bugs] [Bug 75923][Nor] Changed - Mono compilation leaks
semaphores
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Sun Aug 28 23:17:59 EDT 2005
Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.
Changed by caelian at gmail.com.
http://bugzilla.ximian.com/show_bug.cgi?id=75923
--- shadow/75923 2005-08-28 04:00:34.000000000 -0400
+++ shadow/75923.tmp.29102 2005-08-28 23:17:59.000000000 -0400
@@ -2,13 +2,13 @@
Product: Mono: Runtime
Version: 1.1
OS: other
OS Details: FreeBSD 5.4-RELEASE-p6
Status: NEW
Resolution:
-Severity:
+Severity: Unknown
Priority: Normal
Component: io-layer
AssignedTo: mono-bugs at ximian.com
ReportedBy: tmclaugh at sdf.lonestar.org
QAContact: mono-bugs at ximian.com
TargetMilestone: ---
@@ -76,6 +76,43 @@
------------------------------------------------------------------------
[tom at compass tom]$ ipcs -bst
Semaphores:
T ID KEY MODE OWNER GROUP NSEMS OTIME CTIME
s 196608 1294723677 --rw------- root wheel 8 3:02:58 3:01:23
------------------------------------------------------------------------
+
+------- Additional Comments From caelian at gmail.com 2005-08-28 23:17 -------
+Well .. i have to admit first hand i don't have much experience with
+semaphores myself but ...
+
+I have been combing through the mono sources for several hours by now
+.. (mostly the io-layer and libgc .. as they basically seem to be the
+only two parts that actually seem to use semaphores) and so far i have
+started wondering a few things that i would really appreciate some
+clarification on.
+
+I see there's two different mechanisms of acquiring semaphores being
+used .. sem_init for unnamed semaphores and semget for named
+semaphores to use in IPC.
+
+For most of the sem_init() calls i have been able to identify a
+seemingly appropriate sem_destroy() call to clean up the semaphore
+though i am not 100% sure every sem_init() Indeed has a matching
+sem_destroy().
+
+The thing that struck me as extremely strange though is the fact that
+the only occurances of semctl(..., IPC_RMID) i have encountered in the
+entire mono tree are for documented "error cases" ... however i can't
+find even a SINGLE non-error-case semctl(..., IPC_RMID) call in the
+Entire mono tree that will actually clean up these semget() created
+semaphores.
+
+If somebody more knowledgable on the concept of semaphores could
+explain to me the relationships between all the sem_get() and
+sem_destroy() calls that would be appreciated.
+
+The biggest concern here obviously is the semget()/semctl() scenario
+though ... unless i completely miss something extremely obvious, can
+somebody please explain to me how we ever expect Not to leave
+semaphores behind .. if we Never actually clean them up with the
+appropriate semctl(..., IPC_RMID) call ?
+
More information about the mono-bugs
mailing list