Running on Ubuntu 16.04 LTS, database and clients run on the same system.
I am using the Dec2016 branch, and noticed that the database connections
get dropped randomly, but in high frequency.
This error occurs irrespective for whether I use mclient, python package
(pymonetdb) or the JDBC driver from the site.
>From what I could figure if I use the forward=redirect option instead of
the default proxy, the frequency reduces drastically, but is still present
(if I leave the mclient connection idle for like 5 minutes it will drop -
is there an idle time out somewhere ? Also is there a way to force a
network connection locally instead of unix socket ? ).
Sample of some messages For the default proxy option
===========================
>From merovingian.log
2016-12-01 10:59:33 MSG merovingian[29445]: target connection is on local
UNIX domain socket, passing on filedescriptor instead of proxying
Python error due to dropped connection.
>>> rows=cursor.execute("SELECT 'HELLO';");
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/sql/cursors.py",
line 164, in execute
block = self.connection.execute(query)
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/sql/connections.py",
line 133, in execute
return self.command('s' + query + ';')
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/sql/connections.py",
line 138, in command
return self.mapi.cmd(command)
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/mapi.py", line
208, in cmd
self._putblock(operation)
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/mapi.py", line
310, in _putblock
self._putblock_inet(block)
File "/usr/local/lib/python3.5/dist-packages/pymonetdb/mapi.py", line
321, in _putblock_inet
self.socket.send(flag)
BrokenPipeError: [Errno 32] Broken pipe
JDBC Error (I am using PyCharm to execute some SQLs)
[08000] Connection to server lost! (mserver still alive?)
On the other hand, mclient does not show any error message, tried -X
option, but no message when it dies. It just dies while executing a command
(probably because the connection is dropped)
A peek at netstat shows that the connections disappear from it before
mclient dies.
$ netstat -anp | grep 50000
tcp 0 0 127.0.0.1:50000 0.0.0.0:* LISTEN
29445/monetdbd
udp 0 0 127.0.0.1:50000 0.0.0.0:*
29445/monetdbd
unix 2 [ ACC ] STREAM LISTENING 3869978213
<(386)%20997-8213> 29445/monetdbd /tmp/.s.monetdb.50000
unix 2 [ ACC ] STREAM LISTENING 3869978215
<(386)%20997-8215> 29445/monetdbd /tmp/.s.merovingian.50000
unix 3 [ ] STREAM CONNECTED 3875263615 29486/mserver5
/tmp/.s.monetdb.50000
unix 2 [ ] STREAM CONNECTED 3871676942 29486/mserver5
/tmp/.s.monetdb.50000
$ netstat -anp | grep 50000
tcp 0 0 127.0.0.1:50000 0.0.0.0:* LISTEN
29445/monetdbd
udp 0 0 127.0.0.1:50000 0.0.0.0:*
29445/monetdbd
unix 2 [ ACC ] STREAM LISTENING 3869978213
<(386)%20997-8213> 29445/monetdbd /tmp/.s.monetdb.50000
unix 2 [ ACC ] STREAM LISTENING 3869978215
<(386)%20997-8215> 29445/monetdbd /tmp/.s.merovingian.50000
unix 2 [ ] STREAM CONNECTED 3871676942 29486/mserver5
/tmp/.s.monetdb.50000
After switching to the forward option (where this issue is less frequent
to be bothersome)
===========================
>From merovingian.log
2016-12-01 11:22:59 MSG merovingian[29824]: redirecting client (local) for
database 'voc' to mapi:monetdb://cerberus:50001/voc
Although for most part the connections are stable, if and when mclient
dies, I do notice that the netstat entries are NOT being removed.
(see the entries piling up at the bottom though there are no active client
processes)
$ netstat -anp | grep 50000
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:50000 0.0.0.0:* LISTEN
29824/monetdbd
tcp 1 0 127.0.0.1:50000 127.0.0.1:35870
CLOSE_WAIT 29824/monetdbd
udp 0 0 127.0.0.1:50000 0.0.0.0:*
29824/monetdbd
unix 2 [ ACC ] STREAM LISTENING 3876967185 29824/monetdbd
/tmp/.s.monetdb.50000
unix 2 [ ACC ] STREAM LISTENING 3876967187 29824/monetdbd
/tmp/.s.merovingian.50000
unix 2 [ ] STREAM CONNECTED 3877116313 29824/monetdbd
/tmp/.s.monetdb.50000
unix 2 [ ] STREAM CONNECTED 3880819958 29824/monetdbd
/tmp/.s.monetdb.50000
unix 2 [ ] STREAM CONNECTED 3878012589 29824/monetdbd
/tmp/.s.monetdb.50000
unix 2 [ ] STREAM CONNECTED 3877885158 29824/monetdbd
/tmp/.s.monetdb.50000
Thanks,
Joseph