Massimiliano Pinto
b01cf2365e
Added log error or ss_dassert instead of silent returning
2013-09-04 15:31:04 +02:00
Mark Riddoch
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
Massimiliano Pinto
be27d36f8c
Added dcb NULL check in mysql_send_custom_error()
2013-09-04 11:26:14 +02:00
Massimiliano Pinto
61df7eb07d
Added checks against NULL in gw_read_backend_event for dcb->session and dcb->session->client
2013-09-04 10:57:08 +02:00
Massimiliano Pinto
8e97974216
Fixed return rc after:
...
routeQuery()
(dcb->func).close(dcb);
This will prevent setting again dcb->sate = DCB_STATE_POLLING in return_rc label.
The log entry for
[gw_read_client_event] ioctl FIONREAD for fd 21 failed. errno 9, Bad file descriptor. dcb->state = 3
now is not present anymore.
2013-09-03 14:42:47 +02:00
Massimiliano Pinto
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
vraatikka
757a043386
Replaced oinlined protocol creation with call to mysql_protocol_init. Clean up.
2013-09-01 00:36:31 +03:00
vraatikka
9df2040a8a
Removed unused variables, changed call to mysql_protocol_init to reflect new prototype.
2013-09-01 00:32:57 +03:00
vraatikka
88ffcaa3d4
Removed 'extern' keyword from function declaration in headers. Functions are 'extern' by default.
...
Changed mysql_protocol_init prototype and implementation to return MySQLProtocol pointer instead of boolean.
2013-09-01 00:30:46 +03:00
vraatikka
3dff91e80f
In gw_create_backend_connection, replaced inlined protocol init with call to mysql_protocol_init (mysql_common.c). Replaced fprintfs with logging commands.
2013-08-31 23:51:54 +03:00
vraatikka
c23168ed71
gw_do_connect_to_backend returned zero in case where connect failed with errno EINPROGRESS. Should have returned 1 to indicate that connection will be established asynchronously.
...
In the same case, checking for error by using getsockopt should be done when select returns, not after connect (man 2 connect).
2013-08-31 23:45:40 +03:00
Mark Riddoch
a445b6ff37
Fixes for NULL test for function returns such as malloc() - as reported by Coverity
2013-08-29 13:34:21 +02:00
vraatikka
527df6c7f3
Merge, mostly.
2013-08-28 23:26:09 +03:00
vraatikka
48165bf5cd
Removed unused protocol_mutex and references to it.
2013-08-28 23:25:27 +03:00
vraatikka
50a3cfdf49
Commented out some dead code.
2013-08-28 23:17:18 +03:00
vraatikka
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
Massimiliano Pinto
ff109c6319
dcb->state set wheere missing or changed
2013-08-27 10:52:43 +02:00
Massimiliano Pinto
d0d68a69ca
Added DCB_STATE_XXX in EPOLLIN/EPOLLOUT handlers and in accept()
2013-08-27 10:08:03 +02:00
vraatikka
49036894f5
In gw_connect_to_backend, first create socket, and establish socket connection, then in the end, dcb is added to epoll set.
2013-08-24 00:18:46 +03:00
vraatikka
df5f2f29b2
Removed undefined function declaration. Added trace and error log.
2013-08-23 23:25:12 +03:00
vraatikka
e345b23bcf
Merge
2013-08-23 22:47:16 +03:00
vraatikka
0a182913a1
in gw_MySQLAccept moved authentication packet send before adding new dcb to epoll set.
2013-08-23 22:39:42 +03:00
Massimiliano Pinto
52c30c3e58
Removed dcb->state set after func.close()
2013-08-23 14:17:00 +02:00
vraatikka
68a5a389ee
Removed SS_DEBUG macros around necessary include directives.
2013-08-23 13:42:10 +03:00
vraatikka
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
vraatikka
8dfd5de923
Fix merge
2013-08-22 00:01:44 +03:00
Jan Lindström
b6ba1954f5
Merge
2013-08-19 08:48:33 +03:00
Mark Riddoch
1a18632920
Move fprintf to log
2013-08-21 16:35:01 +02:00
Mark Riddoch
2499378af9
Bug 160 - fixed freeing of username
2013-08-21 12:06:31 +02:00
Massimiliano Pinto
73ffa5a648
dcb->data is allocated before poll_add_dcb in httpd_accept()
...
This will prevent dcb->data to be NULL with threads
2013-08-20 11:37:57 +02:00
vraatikka
21dabda848
Removed redundant log writings.
2013-08-20 10:49:35 +03:00
vraatikka
2ad0b12d79
Check dcb->status and set new state with writeqlock on.
2013-08-19 19:41:47 +03:00
vraatikka
ea79b38e4f
Check return value of dcb_read and if it failed, don't access head of linked list.
2013-08-19 19:39:47 +03:00
vraatikka
05a3978442
Modified gw_read_client_event so that it only calls mysql_send_ok after new sessions has been set up and initialized.
2013-08-19 13:02:04 +03:00
vraatikka
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
vraatikka
2d31d9ff5b
Initialized addr length indicator in telnetd_accept
2013-08-12 21:06:44 +03:00
Massimiliano Pinto
75e7de182f
fprintf debug for added backend connection is protected by if (backend->fd > 0)
2013-08-07 09:39:29 +02:00
vraatikka
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
Massimiliano Pinto
3357748aad
Some typos fixed
2013-08-02 10:00:56 +02:00
vraatikka
b71b22b18a
Removed dependency files because they are now created as a part of makefile processing.
2013-07-30 15:07:50 +03:00
vraatikka
f3cf1d703e
Removed depend.mk files. Added command 'touch depend.mk' to each Makefile which attempts to include depend.mk. That is for the makefile process phase where only the existence of depend.mk is checked. Later the real file is created in 'depend' target.
2013-07-30 11:43:39 +03:00
skysql
636e5b619c
fix Makefile to comply with new dirs
2013-07-29 09:39:46 +03:00
Timofey Turenko
a7c82310f9
moving files to /server to make merge possible
2013-07-28 05:31:11 +00:00