cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tyler Hobbs (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7626) Tracing problems with 2.1 cqlsh
Date Tue, 29 Jul 2014 20:42:39 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14078318#comment-14078318
] 

Tyler Hobbs commented on CASSANDRA-7626:
----------------------------------------

The microseconds issue comes from CASSANDRA-1337 and the fix for CASSANDRA-5668.  Basically,
with 5668, we destroy the trace state for non-local traces when we send a REQUEST_RESPONSE
message.  If we perform range slices one range at a time, this doesn't cause any problems,
because the trace state is rebuilt with each new request for a range.  However, post-1337,
multiple ranges will be handled at the same time.  When the first range (among many) is completed,
the trace state is destroyed, so there's no trace state for the other ranges that are being
concurrently handled to use.

It seems like the best solution may be to reference count trace states.  We can still release
references in the same place (when a REQUEST_RESPONSE is sent).

> Tracing problems with 2.1 cqlsh
> -------------------------------
>
>                 Key: CASSANDRA-7626
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7626
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Tools
>            Reporter: Tyler Hobbs
>            Assignee: Tyler Hobbs
>            Priority: Minor
>             Fix For: 2.1.0
>
>
> If some replicas continue doing work after the coordinator responds to the client (e.g.
writing at CL.ONE with RF=3), those trace events will not have a source_elapsed field, leading
to the following error in cqlsh:
> {noformat}
> Traceback (most recent call last):
>   File "bin/cqlsh", line 822, in onecmd
>     self.handle_statement(st, statementtext)
>   File "bin/cqlsh", line 863, in handle_statement
>     return self.perform_statement(cqlruleset.cql_extract_orig(tokens, srcstr))
>   File "bin/cqlsh", line 898, in perform_statement
>     print_trace_session(self, self.session, stmt.trace.trace_id)
>   File "/srv/cassandra/bin/../pylib/cqlshlib/tracing.py", line 25, in print_trace_session
>     rows = fetch_trace_session(trace)
>   File "/srv/cassandra/bin/../pylib/cqlshlib/tracing.py", line 54, in fetch_trace_session
>     event.source_elapsed.microseconds])
> AttributeError: 'NoneType' object has no attribute 'microseconds'
> {noformat}
> If the trace wasn't fully written within the driver's 2 second waiting period, you'll
get this error:
> {noformat}
> Traceback (most recent call last):
>   File "bin/cqlsh", line 822, in onecmd
>     self.handle_statement(st, statementtext)
>   File "bin/cqlsh", line 863, in handle_statement
>     return self.perform_statement(cqlruleset.cql_extract_orig(tokens, srcstr))
>   File "bin/cqlsh", line 898, in perform_statement
>     print_trace_session(self, self.session, stmt.trace.trace_id)
> AttributeError: 'NoneType' object has no attribute 'trace_id'
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message