Commit Graph

1212 Commits

Author SHA1 Message Date
17ec98fa3d session was assigned state SESSION_STATE_READY outside protected block, and backend dcb thread saw authentication data and session in SESSION_STATE_ALLOC state, which trapped. Moved state assignment inside protection block. 2013-09-05 19:47:42 +03:00
4f8057034a Protected temporarily with spinlock gethostbyname which is not thread safe. This should be changed permanently so that gethostbyname is replaced with getaddrinfo. 2013-09-05 19:42:59 +03:00
8f98ae4751 Removed old mysql protocol files 2013-09-04 15:53:51 +02:00
6888735f7b Removed old gateway_mysql_protocol.c
server/core/Makefile updtated
2013-09-04 15:41:08 +02:00
f74f67540f Added spinlock protection for the session association to the DCB and
reworked the reference count mechanism on the session.  Introduced a
FREE state for the session and alter the session destruction flow so
that we only remove the session when all the DCB's have singled they
have finished processing events for the DCB rather than when the first
thread decides to clsoe the DCB.
2013-09-04 12:24:59 +02:00
db164be946 Added spinlock protection for refcount increase in dcb_connect 2013-09-04 10:00:40 +02:00
366441a4bb Added debug assert for checking return value of memory allocation. 2013-09-02 21:53:49 +03:00
c4ce2efd9f Added debug assert for DCB states prior processing. 2013-09-02 21:52:57 +03:00
5487f84532 Added logging to session refcount increment. Some minor improvements. 2013-09-02 21:52:09 +03:00
f80bb51db1 dcb_close sets some session fields to NULL:
dcb->session->client = NULL;

dcb->session = NULL;

There is a local copy of dcb->seesion before setting it to NULL
2013-09-02 19:33:55 +02:00
31cda5ad65 Added session refcount in session.h
The refcount is incremented in dcb_connect and in mysql_client.c after session_alloc
2013-09-02 10:26:34 +02:00
a445b6ff37 Fixes for NULL test for function returns such as malloc() - as reported by Coverity 2013-08-29 13:34:21 +02:00
94a8ad68d3 Checked for bug #178. Added error logs to suitabl places. 2013-08-29 09:50:16 +03:00
48165bf5cd Removed unused protocol_mutex and references to it. 2013-08-28 23:25:27 +03:00
ae9fce8591 Added write and read lock to DCB to protect concurrent threads fro executing EPOLLIN and EPOLLOUT events on same descriptor, respectively. Added consistency checks and trace logging. 2013-08-28 23:09:37 +03:00
9a8e271417 client->data is copied to session->data already in session_alloc to ensure that authentication information is set when background connection is started to establish in concurrent thread. 2013-08-28 23:06:09 +03:00
786468fc5d Added status checks, removed some dead code, changed macros to enumerated types, renamed variables to reflect better what they mean. 2013-08-28 22:59:53 +03:00
6f0ccd7b42 Added static simple_mutex_t epoll_wait_mutex, which is acquired and released in poll_waitevents. 2013-08-23 22:45:06 +03:00
c9ff06e0f5 Increased maximum path length from 180 to 255, and replaced sprintf with snprintf to prevent buffer overflow. 2013-08-23 22:27:40 +03:00
0401290021 Added spinlock ses_lock to struct SESSION to ensure that for each session closeSession is called only once.
closeSession is called from mysql_backend.c:gw_read_backend_event, and from dcb.c:dcb_close.

This is part of Bug #163.
2013-08-22 10:42:18 +03:00
b18d89300d Bug 179 2013-08-22 00:26:24 +03:00
8dfd5de923 Fix merge 2013-08-22 00:01:44 +03:00
b6ba1954f5 Merge 2013-08-19 08:48:33 +03:00
9fe7a83675 Fixes for resource leaks foudn with Coverity.
Bug 173, 174, 175, 176 and 177
2013-08-21 17:26:55 +02:00
21dabda848 Removed redundant log writings. 2013-08-20 10:49:35 +03:00
c5ed473ab7 Check return value of ioctl in dcb_read and act accordingly. 2013-08-19 19:40:51 +03:00
45ea459e20 Check the return value of ioctl in dcb_read. 2013-08-19 17:09:33 +03:00
f750b8545a Merge 2013-08-19 16:40:44 +03:00
c119f7b7b8 In dcb_close read and set dcb->state by holding dcb->writeqlock. This prevents simultaneous calls to closeSession. 2013-08-19 16:38:55 +03:00
b1c398e944 Bug 145 - Silently ignore missing .secrets file 2013-08-19 15:36:26 +02:00
24367fb400 Removed dcb->mutex since it didn't solve any problem. 2013-08-19 13:01:07 +03:00
97b3da1d79 Added simple_mutex_t dcb->mutex to DCB struct to protect processing of single dcb in poll.c:poll_waitevents. This is a coarse locking but seems to work with multiple threads at least with very simple load.
Added trace logging to many locations.
2013-08-16 23:52:10 +03:00
7c0ed171a0 Added trace log to event handling. 2013-08-15 22:45:11 +03:00
a1b05359ac Added trace log where epoll_wait returns and to where read fomr/write to socket decicion is made. 2013-08-15 20:16:23 +03:00
90e6e11923 Added debug trace to socket read. 2013-08-15 11:13:34 +03:00
bed0206895 If config file is specified in command-line argument, then it won't be searched from anywhere else. Earlier command-line argument was ignored if MAXSCALE_HOME was set. 2013-08-14 15:42:35 +03:00
eba81f0501 Corrected comparison between strcmp and 0 so that threads configuration parameter value becomes effective. 2013-08-14 11:25:03 +03:00
249413b2c6 Freed thread structs. 2013-08-12 21:05:44 +03:00
c5fd94590c Freed hashtable iterator to dcb_usersPrint. 2013-08-12 21:04:31 +03:00
64cb6eca56 mysql_library_end is not called if it wasn't initialized properly. 2013-08-12 13:12:23 +03:00
8a9d178785 Fixed bug for invalid memory access in row[1]+1 when row[1] is "" 2013-08-08 18:40:02 +02:00
f1498e4403 Added log flusher thread, which flushes once per second. 2013-08-08 00:08:45 +03:00
8449482279 Fixed typo 2013-08-06 10:55:20 +02:00
256b8e8013 Added more test cases and reformatted output a bit. 2013-08-06 11:14:45 +03:00
30456115f7 Memory used by user structure was not initialized. Changed malloc to calloc. 2013-08-05 18:21:08 +03:00
13248c2a16 Added server/core/test directory, makefile and testhash.c for testing hashtable implementation.
In makefile, there is target all, which compiles and executes tests.
2013-08-05 18:04:02 +03:00
bc6fe8f6ef hashtable_add now checks input parameter and returns with zero (indicating that no elements were added) if hashsize is zero. Caused floating point exception. 2013-08-05 15:01:36 +03:00
401d4920e4 Moved dcb_hashtable_stats from hastable.c to dcb.c to break dependency between hashtable and the rest of the maxscale. Added check fields to hashtable structure. 2013-08-05 11:51:10 +03:00
cae4d38a7e Removed unnecessary argument from log manager commands because it is not used and it is always NULL. 2013-08-04 23:30:47 +03:00
f62cf1ea7e Added check if the last admin user is to be deleted, and if that's the case, prevent it and return with error message. 2013-08-04 23:02:29 +03:00