Issue Details (XML | Word | Printable)

Key: CORE-5203
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Alexander Peshkov
Reporter: Thomas Steinmaurer
Votes: 0
Watchers: 2

If you were logged in you would be able to see more operations.
Firebird Core

Single CPU core fully utilized with Trace session

Created: 21/Apr/16 05:33 PM   Updated: 23/May/16 10:31 PM
Component/s: Engine
Affects Version/s: 3.0 RC1, 3.0 RC2, 4.0 Initial, 3.0.0
Fix Version/s: 3.0.1, 4.0 Alpha 1

QA Status: Cannot be tested

 Description  « Hide
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

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.


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.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Alexander Peshkov added a comment - 21/Apr/16 05:41 PM
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.