Although not made unambiguously clear, it is *ONLY* allowed to
manipulate GWBUFs that are the first link of a GWBUF chain (that
may consist of just one link).
With this change, in debug mode the tail pointer of intermediate
links is invalidated so that an attempt to use an intermediate
link is likely to cause a crash.
If a client requests an unknown binary protocol prepared statement handle,
a custom error shows the actual ID used instead of the "empty" ID of 0
that the backend sends.
The code that checked that only non-empty queries are stored in the query
queue was left out when the query queue fix was backported to 2.3. Since
MXS-2464 is caused by a still unknown bug, the runtime check should help
figure out in which cases the problem occurs.
mdbci call can heppen before maxsales object creation and segfault hapens
To avoid it call of ssh for 'maxscale --version-full' is moved to the end
of Testconnections constructor
log.cc:this_unit.slogger depends upon logger.cc:this_unit.ident.
Depending on which one is destructed first, there will be a crash
or then not.
It seems that the destruction order when returning from main()
is not necessarily the same as that when calling exit() in main,
as this bug is triggered with compilers versions and not with other.
Previously Maxscale version check was in the 'check_backend', but this was
removed from the tests execution process. Now 'maxscale --version-full'
is added to nodes creation function - to call_mdbci()
Due to listener changes we cannot just keep on creating new
listeners with the same port over and over again.
Easiest to simply use a different port each time.
Trying to get the type mask of the QWBUF caused debug assertion in the query
classifier when using some commands. Now type mask is checked only when the
buffer contains MXS_COM_QUERY command.
When a BEGIN statement is being executed without a master connection but
when one can be created, the BEGIN statement would be treated as if a
transaction was already open. Since the statement only starts the
transaction, it is allowed to be routed to a "new" master regardless of
the transaction statem.
This fixes the failure to start a transaction when lazy_connect is
enabled.