You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2016/06/22 15:20:58 UTC

[jira] [Resolved] (KUDU-1485) Segfault in tablet lock manager

     [ https://issues.apache.org/jira/browse/KUDU-1485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Todd Lipcon resolved KUDU-1485.
-------------------------------
       Resolution: Duplicate
    Fix Version/s: n/a

Same root cause as KUDU-1486

> Segfault in tablet lock manager
> -------------------------------
>
>                 Key: KUDU-1485
>                 URL: https://issues.apache.org/jira/browse/KUDU-1485
>             Project: Kudu
>          Issue Type: Bug
>          Components: tablet
>    Affects Versions: 0.9.0
>            Reporter: Mike Percy
>            Priority: Critical
>             Fix For: n/a
>
>
> I hit a segfault while running ITBLL against a RELEASE build on master as of rev 1ead68156e455d9102ea7029fdeb16829bc8dbe1
> {code}
> Program terminated with signal 11, Segmentation fault.
> #0  Release (this=0x219adcb0) at ../../src/kudu/tablet/lock_manager.cc:392
> 392       DCHECK_NOTNULL(lock)->holder_ = nullptr;
> (gdb) bt
> #0  Release (this=0x219adcb0) at ../../src/kudu/tablet/lock_manager.cc:392
> #1  kudu::tablet::ScopedRowLock::Release (this=0x219adcb0) at ../../src/kudu/tablet/lock_manager.cc:309
> #2  0x00000000008e16c0 in ReleaseRowLocks (this=0x1996a120, result=Unhandled dwarf expression opcode 0xf3
> ) at ../../src/kudu/tablet/transactions/write_transaction.cc:307
> #3  kudu::tablet::WriteTransactionState::CommitOrAbort (this=0x1996a120, result=Unhandled dwarf expression opcode 0xf3
> ) at ../../src/kudu/tablet/transactions/write_transaction.cc:262
> #4  0x00000000008e1838 in kudu::tablet::WriteTransaction::Finish (this=0x11997170, result=kudu::tablet::Transaction::ABORTED) at ../../src/kudu/tablet/transactions/write_transaction.cc:152
> #5  0x00000000008d9897 in kudu::tablet::TransactionDriver::HandleFailure (this=0x217dad10, s=Unhandled dwarf expression opcode 0xf3
> ) at ../../src/kudu/tablet/transactions/transaction_driver.cc:254
> #6  0x00000000008db184 in kudu::tablet::TransactionDriver::PrepareAndStartTask (this=0x217dad10) at ../../src/kudu/tablet/transactions/transaction_driver.cc:161
> #7  0x000000000191dcfe in operator() (this=0x4ec9e00, permanent=false) at /usr/include/boost/function/function_template.hpp:1013
> #8  Run (this=0x4ec9e00, permanent=false) at ../../src/kudu/util/threadpool.cc:48
> #9  kudu::ThreadPool::DispatchThread (this=0x4ec9e00, permanent=false) at ../../src/kudu/util/threadpool.cc:343
> #10 0x0000000001918aaa in operator() (arg=0x10a9f450) at /usr/include/boost/function/function_template.hpp:1013
> #11 kudu::Thread::SuperviseThread (arg=0x10a9f450) at ../../src/kudu/util/thread.cc:586
> #12 0x0000003e66e079d1 in start_thread () from /lib64/libpthread.so.0
> #13 0x0000003e66ae88fd in clone () from /lib64/libc.so.6
> (gdb) p this
> $1 = (kudu::tablet::WriteTransactionState * const) 0x1996a120
> (gdb) p *this
> $2 = {<kudu::tablet::TransactionState> = {_vptr.TransactionState = 0x1a78b90, tx_metrics_ = {successful_inserts = 0, successful_upserts = 0, successful_updates = 0, successful_deletes = 0, commit_wait_duration_usec = 0}, tablet_peer_ = 0x5192c60, completion_clbk_ = {impl_ = {
>         data_ = {<kudu::DefaultDeleter<kudu::tablet::TransactionCompletionCallback>> = {<No data fields>}, ptr = 0xf921980}}}, pool_ = {objects_ = std::vector of length 0, capacity 0, lock_ = {static LINKER_INITIALIZED = base::LINKER_INITIALIZED, lockword_ = 0}}, timestamp_ = {static kInitialTimestamp = {
>         static kInitialTimestamp = <same as static member of an already seen type>, static kInvalidTimestamp = {static kInitialTimestamp = <same as static member of an already seen type>, static kInvalidTimestamp = <same as static member of an already seen type>, static kMax = {static kInitialTimestamp = <same as static member of an already seen type>,
>             static kInvalidTimestamp = <same as static member of an already seen type>, static kMax = <same as static member of an already seen type>, static kMin = {static kInitialTimestamp = <same as static member of an already seen type>, static kInvalidTimestamp = <same as static member of an already seen type>,
>               static kMax = <same as static member of an already seen type>, static kMin = <same as static member of an already seen type>, v = 0}, v = 18446744073709551615}, static kMin = <same as static member of an already seen type>, v = 18446744073709551614}, static kMax = <same as static member of an already seen type>,
>         static kMin = <same as static member of an already seen type>, v = 1}, static kInvalidTimestamp = <same as static member of an already seen type>, static kMax = <same as static member of an already seen type>, static kMin = <same as static member of an already seen type>, v = 18446744073709551614}, timestamp_error_ = 0,
>     arena_ = {<kudu::ArenaBase<false>> = {static kMinimumChunkSize = 16, buffer_allocator_ = 0x436dcd0, arena_ = std::vector of length 1, capacity 1 = {std::tuple containingTraceback (most recent call last):
>   File "/usr/lib64/../share/gdb/python/libstdcxx/v6/printers.py", line 262, in children
>     return self._iterator (self.val)
>   File "/usr/lib64/../share/gdb/python/libstdcxx/v6/printers.py", line 220, in __init__
>     raise "Top of tuple tree does not consist of a single node."
> TypeError: exceptions must be old-style classes or derived from BaseException, not str
> }, current_ = 0xe9b70c0, max_buffer_size_ = 4194304, arena_footprint_ = 1024, warned_ = false, component_lock_ = {<No data fields>}}, <No data fields>}, op_id_ = {<google::protobuf::Message> = {<google::protobuf::MessageLite> = {_vptr.MessageLite = 0x1fd5050}, <No data fields>}, static kTermFieldNumber = 1, static kIndexFieldNumber = 2, _unknown_fields_ = {
>         fields_ = 0x0}, _has_bits_ = {0}, _cached_size_ = 0, term_ = 0, index_ = 0, static default_instance_ = 0x43886c0}, consensus_round_ = {ptr_ = 0x30d38ba0}, external_consistency_mode_ = kudu::CLIENT_PROPAGATED, txn_state_lock_ = {l_ = {static LINKER_INITIALIZED = base::LINKER_INITIALIZED, lockword_ = 0}}}, request_ = 0x12584580, response_ = 0x12584700,
>   row_ops_ = std::vector of length 16, capacity 16 = {0x30bae540, 0x11947340, 0x219a0d20, 0x219a1e30, 0x219a08c0, 0x219a1110, 0x219a0d90, 0x219a01c0, 0x219a0a80, 0x219a1c00, 0x219a0930, 0x219a1ea0, 0x219a0f50, 0x219a05b0, 0x219a0b60, 0x219adc70}, mvcc_tx_ = {impl_ = {data_ = {<kudu::DefaultDeleter<kudu::tablet::ScopedTransaction>> = {<No data fields>},
>         ptr = 0x0}}}, tablet_components_ = {ptr_ = 0x0}, schema_lock_ = {m_ = 0x4ef22c0}, schema_at_decode_time_ = 0x50521a0}
> (gdb) p ls
> No symbol "ls" in current context.
> (gdb) f 0
> #0  Release (this=0x219adcb0) at ../../src/kudu/tablet/lock_manager.cc:392
> 392     ../../src/kudu/tablet/lock_manager.cc: No such file or directory.
>         in ../../src/kudu/tablet/lock_manager.cc
> (gdb) p ls
> $3 = 3
> (gdb) p *lock
> Cannot access memory at address 0x2629de5db738e7
> (gdb) p lock
> $4 = (kudu::tablet::LockEntry *) 0x2629de5db738e7
> (gdb) p *this
> $5 = {locks_ = 0x1}
> (gdb) p locks_
> $6 = (kudu::tablet::LockTable *) 0x1
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)