You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm basically seeking for assistance pin-pointing an issue here with
Firebird 3 SuperServer 32-bit on Windows 10 Prof., as it seems, in the
context of the Trace API. This all is not an issue with Firebird 2.5.
Unfortunately, it is only reproducible in FB TraceManager at the moment.
I haven't been able to reproduce it with e.g. a mix of isql and
fbtracemgr.exe for example.
When starting a trace session with e.g. the following configuration:
and triggering a few monitoring table queries behind the scene in a
particular area of our product, a single thread in firebird.exe starts
to fully utilize a single CPU core. When I start the trace session with
an additional exclude_filter part %MON$%, the problem disappears.
I guess not very helpful, but this is the stack trace of the high CPU
offending thread in firebird.exe according to SysInternals process explorer.
Thomas, as a temporal workaround I recommend use of isc_info_svc_to_eof when reading service data.
BTW, it's more efficient in general (using bigger network packets) therefore recommended when service can produce a lot of data. Our utilities fbsvcmgr & fbtracemgr are using it to access trace data.
Submitted by: Thomas Steinmaurer (tsteinmaurer)
I'm basically seeking for assistance pin-pointing an issue here with
Firebird 3 SuperServer 32-bit on Windows 10 Prof., as it seems, in the
context of the Trace API. This all is not an issue with Firebird 2.5.
Unfortunately, it is only reproducible in FB TraceManager at the moment.
I haven't been able to reproduce it with e.g. a mix of isql and
fbtracemgr.exe for example.
When starting a trace session with e.g. the following configuration:
database = employee
{
enabled = true
log_statement_prepare = true
log_statement_free = true
log_statement_finish = true
log_procedure_finish = true
log_trigger_finish = true
print_plan = true
print_perf = true
log_function_finish = true
exclude_filter = %RDB$%
time_threshold = 0
max_sql_length = 2048
}
services
{
}
and triggering a few monitoring table queries behind the scene in a
particular area of our product, a single thread in firebird.exe starts
to fully utilize a single CPU core. When I start the trace session with
an additional exclude_filter part %MON$%, the problem disappears.
I guess not very helpful, but this is the stack trace of the high CPU
offending thread in firebird.exe according to SysInternals process explorer.
ntoskrnl.exe!KeSynchronizeExecution+0x3de6
ntoskrnl.exe!KeWaitForMultipleObjects+0x1320
ntoskrnl.exe!KeWaitForMultipleObjects+0xd38
ntoskrnl.exe!KeWaitForSingleObject+0x385
ntoskrnl.exe!KeTestAlertThread+0x1103
ntoskrnl.exe!KeSetCoalescableTimer+0x800
ntoskrnl.exe!KeSynchronizeExecution+0x2543
Engine12.DLL!firebird_plugin+0x6f7c5
Engine12.DLL!firebird_plugin+0xf9133
I'm afraid, not very helpful. :-(
What else could I provide so that you can investigate the offending
thread? I'm better in diagnosing JVM stuff than native.
I'm aware, this all is vague and I would prefer a simple isql based test
case as well, but I failed so far.
Commits: 41e9f3f 1184d3e
The text was updated successfully, but these errors were encountered: