I experience "Script execution timed out" on my server every day. Most often it ends up in a sequence of server crashes with "SIGABRT" reason (usually about 3-5 crashes in a row).
Here is an example of console messages right before a crash:
Code:
L 05/13/2021 - 17:41:37: [plugin.smx] ALTER TABLE table1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
L 05/13/2021 - 17:41:37: [SM] Exception reported: Script execution timed out
L 05/13/2021 - 17:41:37: [SM] Blaming: plugin.smx
L 05/13/2021 - 17:41:37: [SM] Call stack trace:
L 05/13/2021 - 17:41:37: [SM] [0] SQL_TQuery
L 05/13/2021 - 17:41:37: [SM] [1] Line 14, plugin::GotDatabase
L 05/13/2021 - 17:41:37: [plugin.smx] SQL ERROR
L 05/13/2021 - 17:41:37: [plugin.smx] Multiple primary key defined
#
#Console initialized.
#Using breakpad minidump system 740/13790.1272.DC
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
#Loading VPK file hashes for pure server operation.
This query is executed on every map change and sometimes I get such exceptions. Sometimes the server crashes after printing the ALTER TABLE message without printing anything else.
It seems that some blocking situation happens there from time to time. Usually execution of this query takes much less than 1 second. But sometimes much more time is requried.
Is there a way to avoid server crashes when execution takes a lot of time? Is there a way to make execution of the query non-blocking? The plugin is in the attachment.
Also there is a crashstack, which has little data though. I think the reason for the crash might be the server's watchdog.