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

Occasional segmentation fault when running market tests #3493

Closed
devos50 opened this issue Mar 4, 2018 · 2 comments
Closed

Occasional segmentation fault when running market tests #3493

devos50 opened this issue Mar 4, 2018 · 2 comments
Assignees

Comments

@devos50
Copy link
Contributor

devos50 commented Mar 4, 2018

The market tests segfault sometimes:

Test trading between two persons, with a matchmaker ... /home/jenkins/workspace/GH_Tribler_PR_tests_linux/gumby/scripts/wrap_in_temp_home.sh: line 34: 44161 Segmentation fault      (core dumped) $*
+ FAILURE=139

After analysing the core dump file with gdb, I got the following stack trace:

GNU gdb (Debian 7.12-6+b1) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/python2.7...Reading symbols from /usr/lib/debug/.build-id/20/6b80329daae2f6c7d03485fab33497a34c59bd.debug...done.
done.

warning: core file may not match specified executable file.
[New LWP 45471]
[New LWP 45468]
[New LWP 44161]
[New LWP 45246]
[New LWP 45474]
[New LWP 45472]
[New LWP 45473]
[New LWP 45476]
[New LWP 45469]
[New LWP 44249]
[New LWP 45477]
[New LWP 45475]
[New LWP 45470]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/python /usr/bin/nosetests -v --with-xcoverage --xunit-file=/home/jenki'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  _pysqlite_query_execute () at ./Modules/_sqlite/cursor.c:678
678	./Modules/_sqlite/cursor.c: No such file or directory.
[Current thread is 1 (Thread 0x7f390dc5f700 (LWP 45471))]
(gdb) py-bt
Traceback (most recent call first):
  (frame information optimized out)
  (frame information optimized out)
  File "/home/jenkins/workspace/GH_Tribler_PR_tests_linux/tribler/Tribler/pyipv8/ipv8/attestation/trustchain/database.py", line 49, in _get
    db_result = list(self.execute(self.get_sql_header() + query, params, fetch_all=False))
  File "/home/jenkins/workspace/GH_Tribler_PR_tests_linux/tribler/Tribler/pyipv8/ipv8/attestation/trustchain/database.py", line 101, in get_block_before
    (block.sequence_number, buffer(block.public_key)))
  (frame information optimized out)
  File "/home/jenkins/workspace/GH_Tribler_PR_tests_linux/tribler/Tribler/pyipv8/ipv8/attestation/trustchain/community.py", line 210, in validate_persist_block
    validation = block.validate(self.persistence)
  (frame information optimized out)
  (frame information optimized out)
  File "/home/jenkins/workspace/GH_Tribler_PR_tests_linux/tribler/Tribler/community/market/community.py", line 506, in received_half_block_pair_broadcast
    super(MarketCommunity, self).received_half_block_pair_broadcast(source_address, data)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  (frame information optimized out)
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  (frame information optimized out)

It seems that there's an issue when handling incoming blocks on the threadpool.

@devos50 devos50 added this to the V7.1: The token micro-economy milestone Mar 4, 2018
@devos50 devos50 self-assigned this Mar 4, 2018
@devos50
Copy link
Contributor Author

devos50 commented Mar 4, 2018

I'm able to reproduce this issue on bbq and it is caused by messages that come in after the market community has been unloaded. This means that the timeout for the deliver_messages call is too low, however, I suspect that signature validation of TradeChain blocks take a considerable amount of time.

@devos50
Copy link
Contributor Author

devos50 commented Mar 4, 2018

It seems to be non-trivial to disable block validation for the tests since the code is quite deep in the validator. Increasing the timeout for the deliver_messages in the market tests seems to work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants