Changeset: 3a1ed1ef11b7 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3a1ed1ef11b7
Modified Files:
        tools/merovingian/daemon/merovingian.c
Branch: Dec2011
Log Message:

Merged from Aug2011


diffs (44 lines):

diff --git a/tools/merovingian/ChangeLog.Aug2011 
b/tools/merovingian/ChangeLog.Aug2011
--- a/tools/merovingian/ChangeLog.Aug2011
+++ b/tools/merovingian/ChangeLog.Aug2011
@@ -1,3 +1,7 @@
 # ChangeLog file for sql/src/backends/monet5/merovingian
 # This file is updated with mchangelog
 
+* Sun Nov  6 2011 Fabian Groffen <[email protected]>
+- Fixed a bug where monetdbd's socket files from /tmp were removed when
+  a second monetdbd was attempted to be started using the same port.
+
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -1024,8 +1024,6 @@ main(int argc, char *argv[])
 
        msab_init(dbfarm, NULL);
 
-       unlink(control_usock);
-       unlink(mapi_usock);
 
        /* write out the pid */
        Mfprintf(pidfile, "%d\n", (int)d->pid);
@@ -1038,6 +1036,7 @@ main(int argc, char *argv[])
        /* open up connections */
        if (
                        (e = openConnectionTCP(&sock, port, stdout)) == NO_ERR 
&&
+                       (unlink(control_usock) | unlink(mapi_usock) | 1) &&
                        (e = openConnectionUNIX(&socku, mapi_usock, 0, stdout)) 
== NO_ERR &&
                        (discovery == 1 && (e = openConnectionUDP(&usock, 
port)) == NO_ERR) &&
                        (e = openConnectionUNIX(&unsock, control_usock, 
S_IRWXO, _mero_ctlout)) == NO_ERR
@@ -1108,10 +1107,10 @@ main(int argc, char *argv[])
        }
 
        /* control channel is already closed at this point */
-       if (unlink(control_usock) == -1)
+       if (unsock != -1 && unlink(control_usock) == -1)
                Mfprintf(stderr, "unable to unlink control socket '%s': %s\n",
                                control_usock, strerror(errno));
-       if (unlink(mapi_usock) == -1)
+       if (socku != -1 && unlink(mapi_usock) == -1)
                Mfprintf(stderr, "unable to unlink mapi socket '%s': %s\n",
                                mapi_usock, strerror(errno));
 
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to