Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

corrupted double-linked list? #28

Closed
gavinandresen opened this issue Jan 13, 2011 · 8 comments
Closed

corrupted double-linked list? #28

gavinandresen opened this issue Jan 13, 2011 · 8 comments
Labels

Comments

@gavinandresen
Copy link
Contributor

tcatm reports:

*** glibc detected *** ./bitcoind: corrupted double-linked list: 0x0a78b468 ***

... possibly in listaccounts.

@tcatm
Copy link

tcatm commented Jan 13, 2011

possibly in other RPC methods, too. It died with getaccountaddress in debug.log, but didn't get glibc message as the terminal was closed.

Version: 009d5fb (Merge branch 'listaddresses' into integration) with CORS patch (shouldn't cause it, though)

bitcoind: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

@tcatm
Copy link

tcatm commented Jan 13, 2011

I just noticed the following (line numbers might not match, I discovered this while re-ordering some code):

In getaccountaddress()
rpc.cpp:361: warning: control reaches end of non-void function

edit: ArtForz and lfm on IRC said, that code should never return inside a CRITICAL_BLOCK()

@gavinandresen
Copy link
Contributor Author

Returning from a CRITICAL_BLOCK is OK. CRITICAL_BLOCK uses local C++ objects to do the locking, which are guaranteed to be properly destructed no matter how the block is exited.

@gavinandresen
Copy link
Contributor Author

More data: there have been a couple more reports of bitcoind crashing under heavy RPC load, although nobody has been able to reproduce.

@tril0byte
Copy link

how do we know this isn't a hardware problem? does bitcoin check the consistency of its files and repair them automatically?

@jhyslop
Copy link

jhyslop commented Mar 8, 2011

gavinandresen, were those reports from different people, or from one person? If they were from different people I'd push hardware problems further down the list of suspects. I wouldn't rule out hardware problems, of course.

@gavinandresen
Copy link
Contributor Author

jhyslop: bitcoind crashing/hanging reports were from other people (slush was one, I believe).

I still haven't seen it, running 3 or 4 instances of bitcoind on 2 or 3 different machines (Mac and Debian Linux).

@gavinandresen
Copy link
Contributor Author

No further reports of this, I'm going to close.

kac- pushed a commit to kac-/peercoin-ce that referenced this issue Jun 10, 2014
POS output and coin locking
@rebroad rebroad mentioned this issue Sep 11, 2014
Closed
rdponticelli pushed a commit to Criptomonedas/bitcoin that referenced this issue Nov 26, 2014
4d79beb Do not free endomorphism constants when disabled (Pieter Wuille)
dexX7 added a commit to dexX7/bitcoin that referenced this issue May 5, 2015
8c72e08 mastercore.cpp/h: remove AbortOmniNode, not needed (zathras-crypto)
d61d6de DEVMSC: Further fix to signedness (zathras-crypto)
10a1de7 Shutdown : Add AbortOmniNode and switch alert shutdown to use it (zathras-crypto)
8d4cd16 DEVMSC : Fix integer signing (thanks @dexX7) (zathras-crypto)
c95f68a Reorg : delete*Above*Block is non-inclusive, fix block height passed in (zathras-crypto)
e85aa5e Persistence : fix syntax for 5987063 (zathras-crypto)
742fce4 Main: don't call mastercore_handler_block_begin if ConnectTip aborted (zathras-crypto)
3cbecf6 Persistence : fix hang when SP watermark cannot be located (zathras-crypto)
sdaftuar added a commit to sdaftuar/bitcoin that referenced this issue May 14, 2015
Change default location of simulation data to /chaincode/data, and clean...
jtimon pushed a commit to jtimon/bitcoin that referenced this issue Jun 23, 2015
ptschip pushed a commit to ptschip/bitcoin that referenced this issue Jun 9, 2016
fixed detection of cross connected thinblock nodes using ipv6 addresses
maflcko referenced this issue in maflcko/bitcoin-core Sep 30, 2016
16a1f7f Merge bitcoin#3: Pull upstream
3f03bfd Merge pull request #27 from laanwj/2016_09_const_refs
5668ca3 Return const references from getKeys, getValues, get_str
cedda14 Merge pull request #28 from MarcoFalke/patch-1
9f0b997 [travis] Work around osx libtool issue

git-subtree-dir: src/univalue
git-subtree-split: 16a1f7f
n1bor pushed a commit to n1bor/bitcoin that referenced this issue Oct 21, 2016
tempgit9 pushed a commit to tempgit9/bitcoin that referenced this issue Jan 16, 2017
ptschip pushed a commit to ptschip/bitcoin that referenced this issue May 4, 2017
16a1f7f Merge #3: Pull upstream
3f03bfd Merge pull request bitcoin#27 from laanwj/2016_09_const_refs
5668ca3 Return const references from getKeys, getValues, get_str
cedda14 Merge pull request bitcoin#28 from MarcoFalke/patch-1
9f0b997 [travis] Work around osx libtool issue

git-subtree-dir: src/univalue
git-subtree-split: 16a1f7f
tmagik pushed a commit to tmagik/bitcoin that referenced this issue Jul 1, 2017
Sjors referenced this issue in Sjors/bitcoin Aug 31, 2017
* Properly encapsulate wallet code with ENABLE_WALLET ifdefs

* Update function params in zmqpublishnotifier
maflcko referenced this issue in maflcko/bitcoin-core Sep 29, 2017
[travis] Work around osx libtool issue
laanwj added a commit to laanwj/bitcoin that referenced this issue Nov 30, 2017
Add leveldb: prefix to leveldb debug logging lines.
leveldb debug messages come in various scary flavors such as:

    2017-11-30 08:26:31 leveldb: Recovering log bitcoin#26
    2017-11-30 08:26:31 leveldb: Level-0 table bitcoin#28: started
    2017-11-30 08:26:31 leveldb: Level-0 table bitcoin#28: 597 bytes OK
    2017-11-30 08:26:31 leveldb: Delete type=0 bitcoin#26
    2017-11-30 08:26:31 leveldb: Delete type=3 bitcoin#24

so it's reasonably important to mark them as coming from leveldb
internals and not from consensus validation wallet or such.

(this only affects `-debug=leveldb` or `-debug=1` otherwise you won't
see them in the first place)
laanwj added a commit that referenced this issue Nov 30, 2017
9b80fc1 Prefix leveldb debug logging (Wladimir J. van der Laan)

Pull request description:

  Add leveldb: prefix to leveldb debug logging lines.
  leveldb debug messages come in various scary flavors such as:

      2017-11-30 08:26:31 leveldb: Recovering log #26
      2017-11-30 08:26:31 leveldb: Level-0 table #28: started
      2017-11-30 08:26:31 leveldb: Level-0 table #28: 597 bytes OK
      2017-11-30 08:26:31 leveldb: Delete type=0 #26
      2017-11-30 08:26:31 leveldb: Delete type=3 #24

  so it's reasonably important to mark them as coming from leveldb internals and not from consensus validation wallet or such.
  This is consistent with the `libevent:` prefix for libevent messages.

  (this only affects `-debug=leveldb` or `-debug=1` otherwise you won't see them in the first place)

Tree-SHA512: 074eba00d39c6378b9e14d03aa2c551b4e3fc7bffdd5a1a0ba2498b44bcc77071d47735be09493286056053f0cca625c5cbaad7ad1ddb9d902d30e7cd316d9d2
classesjack pushed a commit to classesjack/bitcoin that referenced this issue Jan 2, 2018
HashUnlimited referenced this issue in chaincoin/chaincoin Mar 14, 2018
Add leveldb: prefix to leveldb debug logging lines.
leveldb debug messages come in various scary flavors such as:

    2017-11-30 08:26:31 leveldb: Recovering log #26
    2017-11-30 08:26:31 leveldb: Level-0 table #28: started
    2017-11-30 08:26:31 leveldb: Level-0 table #28: 597 bytes OK
    2017-11-30 08:26:31 leveldb: Delete type=0 #26
    2017-11-30 08:26:31 leveldb: Delete type=3 #24

so it's reasonably important to mark them as coming from leveldb
internals and not from consensus validation wallet or such.

(this only affects `-debug=leveldb` or `-debug=1` otherwise you won't
see them in the first place)
KrzysiekJ pushed a commit to KrzysiekJ/bitcoin that referenced this issue Mar 28, 2018
Warchant referenced this issue in VeriBlock/vbk-ri-btc Dec 31, 2019
* Add ci, docker-compose, sonar

* Add service locator, pop, rpc services (#1)

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add RPC service implementation  (#2)

* Add rpc_service_impl

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add opcodes

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Link libvbk everywhere

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix build

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Register RPCs

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix linker error

* Make service locator templated

* Use default template param to get rid of second overload of get/setService

* Set timeout on build

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix usage on OP_CHECKATV&VTB

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add test template

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add fakeit

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Use fixture

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Move tests to vbk dir

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix double free

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix locator

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Disable -fno-devirtualize

* Uncomment test

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix script_test

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix makefile

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix flag

* Fix -fno-devirtualize flag

* Add more interfaces (#3)

* Add more interfaces

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Remove unneeded comments

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix build, sonar

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add lcov coverage to sonar (#5)

* Add lcov coverage to sonar

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Use gcovr

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Implement Util Service & add tests (#4)

* Implement Util Service & add tests

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add guard impl

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Remove slice; include vector

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Fix

Signed-off-by: Bogdan Vaneev <warchantua@gmail.com>

* Add init methods (#7)

* Fixe AreInputsStandard, GetTransactionSigOpCostGetP2SHSigOpCount (#6)

* Fixe AreInputsStandard, GetTransactionSigOpCostGetP2SHSigOpCount

* fixes

* fixes

* fixes

* fixe test, udate UpdateCoins' (#9)

* fixes (#12)

* fixes

* small fixe

* fixe

* Update src/vbk/util_service/util_service_impl.cpp

Co-Authored-By: Bohdan <warchantua@gmail.com>

* Update src/script/interpreter.h

Co-Authored-By: Bohdan <warchantua@gmail.com>

* fixes

* bitcoin-cli: convert parameters of the RPC service from JSON as needed (#16)

* update mempool, add grpc calls (#14)

* update mempool, add grpc calls

* remove grpc

* fixe

* Fix locator (#17)

* Fix locator

* Fixes

* Use clang in CI

* Generate genesis blocks; change merkle root calc (#13)

* Generate genesis blocks; change merkle root calc

* Fixes

* Fix main genesis block; disable tests

* Fix

* Fix make check

* tests: add a VeriBlock integration test runner (#10)

* tests: add a VeriBlock integration test runner

* add a linker flag to resolve circular dependencies

* Fix CI

* ExtractMatches: fix incorrect condition (#19)

* ExtractMatches fixed

* Fix BTC-31

* Add SavePopTxToDatabase (#20)

* add forkresolution, calculate block without pop tx (#18)

* add forkresolution, calculate block without pop tx

* Feature/update mempool comparator (#21)

* update comparator, add tests

* Feature/validate poptx (#22)

* Add validate pop tx

* Add EvalScript for pOP

* Remove unused config const

* Fix typo

* Fix tests

* Feature/pop reward (#23)

* add pop rewards

* fixe tests

* fixes

* Feature/fix bitcoind dnsseed (#26)

* fix bitcoind

* remove seeds and checkpoint data

* Feature/add grpc service (#24)

* add interface for the statefull block validation

* add first verson of grpc class

* Add autogeneration

* Change submodule git -> https

* add grpc calls of the service

* add statefull validation

* Update proto to v1; fix in Makefile

* Fix build

* Fix build

* fixe

* Fix build

* Fixes to please CI

* Fix build

* Fix

* Fix

* Fix

* First version of config... will continue tomorrow

* Fix

* FIx

* add Pop merkle root commitment (#27)

* fixe bitcoind

* Fix (#28)

* Add CD (#30)

* Add CD

* Try

* Try

* Try

* Fix prerelase on

* Add submodules

* Update strip code

* Remove email

* Revert stripping

* change the getblocktemplate method (#31)

* Feature/disable checks (#32)

* Disable requirement on at least one node

* Fix tests

* Fixes of grpc (#33)

* Fixes of grpc

* Update docker-compose image

* Remove prefix in cd

* Fix

* Update cd

* Fix (#34)
Bushstar pushed a commit to Bushstar/omnicore that referenced this issue Apr 8, 2020
9b80fc1 Prefix leveldb debug logging (Wladimir J. van der Laan)

Pull request description:

  Add leveldb: prefix to leveldb debug logging lines.
  leveldb debug messages come in various scary flavors such as:

      2017-11-30 08:26:31 leveldb: Recovering log bitcoin#26
      2017-11-30 08:26:31 leveldb: Level-0 table bitcoin#28: started
      2017-11-30 08:26:31 leveldb: Level-0 table bitcoin#28: 597 bytes OK
      2017-11-30 08:26:31 leveldb: Delete type=0 bitcoin#26
      2017-11-30 08:26:31 leveldb: Delete type=3 bitcoin#24

  so it's reasonably important to mark them as coming from leveldb internals and not from consensus validation wallet or such.
  This is consistent with the `libevent:` prefix for libevent messages.

  (this only affects `-debug=leveldb` or `-debug=1` otherwise you won't see them in the first place)

Tree-SHA512: 074eba00d39c6378b9e14d03aa2c551b4e3fc7bffdd5a1a0ba2498b44bcc77071d47735be09493286056053f0cca625c5cbaad7ad1ddb9d902d30e7cd316d9d2
KolbyML pushed a commit to KolbyML/bitcoin that referenced this issue Sep 4, 2020
Update build-osx.md needs qrencode to allow QR code generation. I will add this.
maflcko pushed a commit that referenced this issue May 15, 2021
fa2e614 test: Fix off-by-one in mockscheduler test RPC (MarcoFalke)

Pull request description:

  Fixes:

  ```
  fuzz: scheduler.cpp:83: void CScheduler::MockForward(std::chrono::seconds): Assertion `delta_seconds.count() > 0 && delta_seconds < std::chrono::hours{1}' failed.
  ==1059066== ERROR: libFuzzer: deadly signal
      #0 0x558f75449c10 in __sanitizer_print_stack_trace (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x5fec10)
      #1 0x558f753f32b8 in fuzzer::PrintStackTrace() fuzzer.o
      #2 0x558f753d68d3 in fuzzer::Fuzzer::CrashCallback() fuzzer.o
      #3 0x7f4a3cbbb3bf  (/lib/x86_64-linux-gnu/libpthread.so.0+0x153bf)
      #4 0x7f4a3c7ff18a in raise (/lib/x86_64-linux-gnu/libc.so.6+0x4618a)
      #5 0x7f4a3c7de858 in abort (/lib/x86_64-linux-gnu/libc.so.6+0x25858)
      #6 0x7f4a3c7de728  (/lib/x86_64-linux-gnu/libc.so.6+0x25728)
      #7 0x7f4a3c7eff35 in __assert_fail (/lib/x86_64-linux-gnu/libc.so.6+0x36f35)
      #8 0x558f7588a913 in CScheduler::MockForward(std::chrono::duration<long, std::ratio<1l, 1l> >) scheduler.cpp:83:5
      #9 0x558f75b0e5b1 in mockscheduler()::$_7::operator()(RPCHelpMan const&, JSONRPCRequest const&) const rpc/misc.cpp:435:30
      #10 0x558f75b0e5b1 in std::_Function_handler<UniValue (RPCHelpMan const&, JSONRPCRequest const&), mockscheduler()::$_7>::_M_invoke(std::_Any_data const&, RPCHelpMan const&, JSONRPCRequest const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:9
      #11 0x558f7587a141 in std::function<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #12 0x558f7587a141 in RPCHelpMan::HandleRequest(JSONRPCRequest const&) const rpc/util.cpp:565:26
      #13 0x558f756c0086 in CRPCCommand::CRPCCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const ./rpc/server.h:110:91
      #14 0x558f756c0086 in std::_Function_handler<bool (JSONRPCRequest const&, UniValue&, bool), CRPCCommand::CRPCCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)>::_M_invoke(std::_Any_data const&, JSONRPCRequest const&, UniValue&, bool&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:9
      #15 0x558f756b8592 in std::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #16 0x558f756b8592 in ExecuteCommand(CRPCCommand const&, JSONRPCRequest const&, UniValue&, bool) rpc/server.cpp:480:20
      #17 0x558f756b8592 in ExecuteCommands(std::vector<CRPCCommand const*, std::allocator<CRPCCommand const*> > const&, JSONRPCRequest const&, UniValue&) rpc/server.cpp:444:13
      #18 0x558f756b8017 in CRPCTable::execute(JSONRPCRequest const&) const rpc/server.cpp:464:13
      #19 0x558f7552457a in (anonymous namespace)::RPCFuzzTestingSetup::CallRPC(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) test/fuzz/rpc.cpp:50:25
      #20 0x558f7552457a in rpc_fuzz_target(Span<unsigned char const>) test/fuzz/rpc.cpp:354:28
      #21 0x558f7544cf0f in std::_Function_handler<void (Span<unsigned char const>), void (*)(Span<unsigned char const>)>::_M_invoke(std::_Any_data const&, Span<unsigned char const>&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:300:2
      #22 0x558f75c05197 in std::function<void (Span<unsigned char const>)>::operator()(Span<unsigned char const>) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:14
      #23 0x558f75c05197 in LLVMFuzzerTestOneInput test/fuzz/fuzz.cpp:74:5
      #24 0x558f753d8073 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) fuzzer.o
      #25 0x558f753c1f72 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) fuzzer.o
      #26 0x558f753c7d6a in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) fuzzer.o
      #27 0x558f753f3a92 in main (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x5a8a92)
      #28 0x7f4a3c7e00b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
      #29 0x558f7539cc9d in _start (/root/fuzz_dir/scratch/fuzz_gen/code/src/test/fuzz/fuzz+0x551c9d)

ACKs for top commit:
  practicalswift:
    cr ACK fa2e614

Tree-SHA512: cfa120265261f0ad019b46c426b915c1c007806b37aecb27016ce780a0ddea5e6fc9b09065fd40684b11183dcd3bf543558d7a655e604695021653540266baf7
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Sep 8, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants