cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paulo Motta (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7276) Include keyspace and table names in logs where possible
Date Tue, 29 Sep 2015 00:35:04 GMT


Paulo Motta commented on CASSANDRA-7276:

A more elegant approach would be to use logback [MDC|]
feature, which allows to transparently add thread-local contexts to log statements (similar
to the solution mentioned by  [~odpeer]). 

We could add new CF and KS MDC placeholders to the appender layout pattern on logback.xml
(they will be empty if not set), and set them when necessary. We could start by setting on
the following places:
* VerbHandlers which contains KS and CF info
* Flush
* Compaction

Some helper methods would be nice to provide encapsulated and consistent access to MDC. Are
you still willing to take this [~nitzanv]?

> Include keyspace and table names in logs where possible
> -------------------------------------------------------
>                 Key: CASSANDRA-7276
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Tyler Hobbs
>            Assignee: Nitzan Volman
>            Priority: Minor
>              Labels: bootcamp, lhf
>             Fix For: 2.1.x
>         Attachments: 2.1-CASSANDRA-7276-v1.txt, cassandra-2.1-7276-compaction.txt, cassandra-2.1-7276.txt
> Most error messages and stacktraces give you no clue as to what keyspace or table was
causing the problem.  For example:
> {noformat}
> ERROR [MutationStage:61648] 2014-05-20 12:05:45,145 (line 198) Exception
in thread Thread[MutationStage:61648,5,main]
> java.lang.IllegalArgumentException
>     at java.nio.Buffer.limit(Unknown Source)
>     at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(
>     at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(
>     at
>     at
>     at edu.stanford.ppl.concurrent.SnapTreeMap$1.compareTo(
>     at edu.stanford.ppl.concurrent.SnapTreeMap.attemptUpdate(
>     at edu.stanford.ppl.concurrent.SnapTreeMap.updateUnderRoot(
>     at edu.stanford.ppl.concurrent.SnapTreeMap.update(
>     at edu.stanford.ppl.concurrent.SnapTreeMap.putIfAbsent(
>     at org.apache.cassandra.db.AtomicSortedColumns$Holder.addColumn(
>     at org.apache.cassandra.db.AtomicSortedColumns.addAllWithSizeDelta(
>     at org.apache.cassandra.db.Memtable.resolve(
>     at org.apache.cassandra.db.Memtable.put(
>     at org.apache.cassandra.db.ColumnFamilyStore.apply(
>     at org.apache.cassandra.db.Keyspace.apply(
>     at org.apache.cassandra.db.Keyspace.apply(
>     at org.apache.cassandra.db.RowMutation.apply(
>     at org.apache.cassandra.db.RowMutationVerbHandler.doVerb(
>     at
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>     at java.util.concurrent.ThreadPoolExecutor$ Source)
>     at Source)
> {noformat}
> We should try to include info on the keyspace and column family in the error messages
or logs whenever possible.  This includes reads, writes, compactions, flushes, repairs, and
probably more.

This message was sent by Atlassian JIRA

View raw message