8debc4433c
Added a client NULL check in clientReply
2013-09-04 11:37:56 +02:00
be27d36f8c
Added dcb NULL check in mysql_send_custom_error()
2013-09-04 11:26:14 +02:00
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
db164be946
Added spinlock protection for refcount increase in dcb_connect
2013-09-04 10:00:40 +02:00
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
a605b8fd9b
Removed unused macros.
2013-09-02 22:21:28 +03:00
3d5c40e450
Removed unused macros. Fixed struct member order so that check field is again the last in struct and it detects memory overflows slightly better.
2013-09-02 21:54:24 +03: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
b86d3f3dfd
Holding error log's block buffer registration until all logs were written caused deadlock if block buffers were full. Now buffer registrations don't overlap.
2013-09-02 10:30:50 +03:00
ce0085a078
Clean up.
2013-09-01 00:37:49 +03:00
757a043386
Replaced oinlined protocol creation with call to mysql_protocol_init. Clean up.
2013-09-01 00:36:31 +03:00
9df2040a8a
Removed unused variables, changed call to mysql_protocol_init to reflect new prototype.
2013-09-01 00:32:57 +03:00
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
9bf0f58526
introduce mysql_protocol_init.
2013-08-31 23:54:35 +03:00
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
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
9d6b13c288
Replaced macros with enumereted type.
2013-08-31 12:04:02 +03:00
a445b6ff37
Fixes for NULL test for function returns such as malloc() - as reported by Coverity
2013-08-29 13:34:21 +02:00
03725cabe3
Fixed compile issue in dcb.h
2013-08-29 13:17:19 +02:00
94a8ad68d3
Checked for bug #178 . Added error logs to suitabl places.
2013-08-29 09:50:16 +03:00
527df6c7f3
Merge, mostly.
2013-08-28 23:26:09 +03:00
48165bf5cd
Removed unused protocol_mutex and references to it.
2013-08-28 23:25:27 +03:00
134c33776e
Added consistency check fields, and switched macros to enumerated types.
2013-08-28 23:23:05 +03:00
50a3cfdf49
Commented out some dead code.
2013-08-28 23:17:18 +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
f2f119f692
Removed some dead code
2013-08-28 23:08:51 +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
8c8475740a
Switched to booleans defined in stdbool.h
2013-08-28 22:49:27 +03:00
34b26ad85f
Changed enum-type boolean to whta is defined in stdbool.h, and in practise replaced TRUEs and FALSEs with true, and false, respectively.
2013-08-28 22:47:14 +03:00
ff109c6319
dcb->state set wheere missing or changed
2013-08-27 10:52:43 +02:00
d0d68a69ca
Added DCB_STATE_XXX in EPOLLIN/EPOLLOUT handlers and in accept()
2013-08-27 10:08:03 +02:00
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
df5f2f29b2
Removed undefined function declaration. Added trace and error log.
2013-08-23 23:25:12 +03:00
e345b23bcf
Merge
2013-08-23 22:47:16 +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
0a182913a1
in gw_MySQLAccept moved authentication packet send before adding new dcb to epoll set.
2013-08-23 22:39:42 +03:00
0612dae890
Added error log printing.
2013-08-23 22:31:08 +03:00
17975a1252
Fixed indentation.
2013-08-23 22:29:31 +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
52c30c3e58
Removed dcb->state set after func.close()
2013-08-23 14:17:00 +02:00
68a5a389ee
Removed SS_DEBUG macros around necessary include directives.
2013-08-23 13:42:10 +03:00
481096ccef
Added trace log to newSession and to closeSession.
2013-08-22 10:46:14 +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
4138281183
setvbuf was called before testing whether file creation succeed. That caused server to fail if MAXSCALE_HOME was exceptionally long.
2013-08-22 00:32:49 +03:00
b18d89300d
Bug 179
2013-08-22 00:26:24 +03:00