-
Marek Szymczak authored
Problem: ======== Plugin can signal error. A problem ocurr, when a plugin signal error, when already handling an error. This causes infinite recursion. There has been workaround, but it did not prevent infinite recursion. Infinite recursion just did not crash the server. Additionaly, stack overrun routine works on a THD, which stack info has been registered for a particular thread. If it's signalled from a differend thread (thread pool), THD's stack info must be changed. This causes numerous problems. If we do not set start of a stack frame, stack overrun routine signals error, but it is discarded due to prevention of the CONNECTION_DISCONNECT abort. This is why we see 'CANNOT BE ABORTED' warning, but the root cause is in stack overrun routine, which signals stack overrun. Fix: ==== Infinite recursion has been prevented by modification of the error handling routine. Reviewed-by: ============ Ramil Kalimullin <ramil.kalimullin@oracle.com> Georgi 'Joro' Kodinov <georgi.kodinov@oracle.com>
Marek Szymczak authoredProblem: ======== Plugin can signal error. A problem ocurr, when a plugin signal error, when already handling an error. This causes infinite recursion. There has been workaround, but it did not prevent infinite recursion. Infinite recursion just did not crash the server. Additionaly, stack overrun routine works on a THD, which stack info has been registered for a particular thread. If it's signalled from a differend thread (thread pool), THD's stack info must be changed. This causes numerous problems. If we do not set start of a stack frame, stack overrun routine signals error, but it is discarded due to prevention of the CONNECTION_DISCONNECT abort. This is why we see 'CANNOT BE ABORTED' warning, but the root cause is in stack overrun routine, which signals stack overrun. Fix: ==== Infinite recursion has been prevented by modification of the error handling routine. Reviewed-by: ============ Ramil Kalimullin <ramil.kalimullin@oracle.com> Georgi 'Joro' Kodinov <georgi.kodinov@oracle.com>
Loading