Changeset: adf6eb846638 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=adf6eb846638
Modified Files:
tools/merovingian/daemon/multiplex-funnel.c
Branch: Apr2011
Log Message:
multiplex-funnel: don't assume we can always do a connection switch-over
Deferred connection management also involves putting new connections
life, or dropping connections. Hence, we cannot print the from/to in
such case. Don't try to.
diffs (48 lines):
diff --git a/tools/merovingian/daemon/multiplex-funnel.c
b/tools/merovingian/daemon/multiplex-funnel.c
--- a/tools/merovingian/daemon/multiplex-funnel.c
+++ b/tools/merovingian/daemon/multiplex-funnel.c
@@ -529,17 +529,33 @@
/* evaluate if connections have to be switched */
for (i = 0; i < m->dbcc; i++) {
if (m->dbcv[i]->connupdate) {
- /* put new connection live */
- Mfprintf(stdout, "performing deferred
connection cycle "
- "for %s from %s to %s\n",
- m->dbcv[i]->database,
- mapi_get_uri(m->dbcv[i]->conn),
-
mapi_get_uri(m->dbcv[i]->newconn));
- mapi_disconnect(m->dbcv[i]->conn);
- mapi_destroy(m->dbcv[i]->conn);
- m->dbcv[i]->conn = m->dbcv[i]->newconn;
- m->dbcv[i]->newconn = NULL;
- m->dbcv[i]->connupdate = 0;
+ if (m->dbcv[i]->newconn != NULL) {
+ /* put new connection live */
+ Mfprintf(stdout, "performing deferred
connection cycle "
+ "for %s from %s to
%s\n",
+ m->dbcv[i]->database,
+ m->dbcv[i]->conn !=
NULL ?
+
mapi_get_uri(m->dbcv[i]->conn) :
+ "<unconnected>",
+
mapi_get_uri(m->dbcv[i]->newconn));
+ mapi_disconnect(m->dbcv[i]->conn);
+ mapi_destroy(m->dbcv[i]->conn);
+ m->dbcv[i]->conn = m->dbcv[i]->newconn;
+ m->dbcv[i]->newconn = NULL;
+ m->dbcv[i]->connupdate = 0;
+ } else {
+ /* put new connection live */
+ Mfprintf(stdout, "performing deferred
connection drop "
+ "for %s from %s\n",
+ m->dbcv[i]->database,
+ m->dbcv[i]->conn !=
NULL ?
+
mapi_get_uri(m->dbcv[i]->conn) :
+
"<unconnected>");
+ mapi_disconnect(m->dbcv[i]->conn);
+ mapi_destroy(m->dbcv[i]->conn);
+ m->dbcv[i]->conn = NULL;
+ m->dbcv[i]->connupdate = 0;
+ }
}
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list