Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 648974 - dev-python/pyblake2-1.0.0 SEGV in blake2b_init_param, portage unusable
Summary: dev-python/pyblake2-1.0.0 SEGV in blake2b_init_param, portage unusable
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Michał Górny
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-27 18:09 UTC by Joe Harvell
Modified: 2018-03-03 19:29 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
output of emerge --info (einfo.txt,6.68 KB, text/plain)
2018-02-27 18:10 UTC, Joe Harvell
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Harvell 2018-02-27 18:09:48 UTC
See coredump below.  Both emerge and ebuild commands generate cores.  I think this happens when verifying the signature for a package.  On another box I have an older version of portage (2.3.8) that does not have a dependency on pyblake2 and I do not have the problem.

I can't even use portage to unpack the sources for pyblake2 to aid in debugging.  Is there some way to downgrade portage without using portage?

jharvell@wolfhound distfiles$ sudo coredumpctl gdb 17283
           PID: 17283 (emerge)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 11 (SEGV)
     Timestamp: Tue 2018-02-27 09:57:03 MST (15s ago)
  Command Line: /usr/bin/python3.5 -b /usr/lib/python-exec/python3.5/emerge -1v =dev-lang/python-3.5.4-r1
    Executable: /usr/bin/python3.5m
 Control Group: /user.slice/user-4393.slice/session-100.scope
          Unit: session-100.scope
         Slice: user-4393.slice
       Session: 100
     Owner UID: 4393 (jharvell)
       Boot ID: 722fe3a32cab4d9c84721da27a8d8678
    Machine ID: 5f28bcf6b4937f6702156cee508ab960
      Hostname: wolfhound
       Storage: /var/lib/systemd/coredump/core.emerge.0.722fe3a32cab4d9c84721da27a8d8678.17283.1519750623000000.lz4
       Message: Process 17283 (emerge) of user 0 dumped core.

GNU gdb (Gentoo 7.12.1 vanilla) 7.12.1
Copyright (C) 2017 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-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://bugs.gentoo.org/>.
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/python3.5m...Reading symbols from /usr/lib64/debug//usr/bin/python3.5m.debug...done.
done.

warning: core file may not match specified executable file.
[New LWP 17283]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/python3.5 -b /usr/lib/python-exec/python3.5/emerge -1v =dev-lang/pytho'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f6da179d790 in blake2b_init_param (S=0x7f6d9e0922b0, P=0x7f6d9e092240) at impl/blake2b.c:173
173     impl/blake2b.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0  0x00007f6da179d790 in blake2b_init_param (S=0x7f6d9e0922b0, P=0x7f6d9e092240) at impl/blake2b.c:173
#1  0x00007f6da179d25c in init_blake2bObject (self=self@entry=0x7f6d9e092230, args=args@entry=(), kw=kw@entry=0x0)
    at pyblake2module.c:664
#2  0x00007f6da179d66e in py_blake2b_new.lto_priv.17 (self=<optimized out>, args=(), kwdict=0x0)
    at pyblake2module.c:664
#3  0x00007f6da31de6f9 in PyCFunction_Call () from /usr/lib64/libpython3.5m.so.1.0
#4  0x00007f6da32bdac7 in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#5  0x00007f6da32bee93 in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#6  0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#7  0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#8  0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#9  0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#10 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#11 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#12 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#13 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#14 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#15 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#16 0x00007f6da32bee93 in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#17 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#18 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#19 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#20 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#21 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#22 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
#23 0x00007f6da32bfc9c in _PyEval_EvalCodeWithName () from /usr/lib64/libpython3.5m.so.1.0
#24 0x00007f6da32bc6ea in PyEval_EvalFrameEx () from /usr/lib64/libpython3.5m.so.1.0
---Type <return> to continue, or q <return> to quit---q
Quit
(gdb) Quit
(gdb) quit
Comment 1 Joe Harvell 2018-02-27 18:10:59 UTC
Created attachment 521314 [details]
output of emerge --info
Comment 2 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-03-01 07:49:53 UTC
You can 'emerge -C pyblake2' (it doesn't check Manifests when unmerging) to workaround it. Afterwards, I'd appreciate if you could try running:

  FEATURES=test emerge -1vB pyblake2

and let me know if the test suite fails (-B forces building binpkg, so it won't install it to your system). I see that you're using ricer flags, so I'd appreciate if you could try removing them one by one and seeing which one causes the problem.
Comment 3 Joe Harvell 2018-03-02 03:53:59 UTC
emerge -C worked.  Thanks.

I ran the command to test the package (see below).  I didn't see any output.  Were the tests run (and passed) as part of the emerge?



wolfhound packages$ sudo FEATURES=test emerge -1vB pyblake2

 * IMPORTANT: 20 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be built, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-python/pyblake2-1.1.0::gentoo  PYTHON_TARGETS="python2_7 python3_4 python3_5 -pypy -python3_6" 123 KiB

Total: 1 package (1 new), Size of downloads: 123 KiB

>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-python/pyblake2-1.1.0::gentoo
>>> Jobs: 1 of 1 complete                           Load avg: 3.80, 3.28, 2.64
Comment 4 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-03-02 08:01:11 UTC
Hmm, they should have been but I'm not sure without seeing the log. Try with '--jobs 1 --quiet-build n'.
Comment 5 Joe Harvell 2018-03-03 18:49:25 UTC
jharvell@wolfhound ~$ sudo FEATURES=test emerge --jobs 1 --quiet-build n -1vB pyblake2

[snip]

>>> Source compiled.
>>> Test phase: dev-python/pyblake2-1.1.0
 * python2_7: running distutils-r1_run_phase python_test
test_block_size (__main__.BLAKE2bTest) ... ok
test_constants (__main__.BLAKE2bTest) ... ok
test_constructor (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bTest) ... ok
test_digest_size (__main__.BLAKE2bTest) ... ok
test_empty_bytes (__main__.BLAKE2bTest) ... ok
test_hexdigest (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2bKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2bKeyedTest) ... ok
test_block_size (__main__.BLAKE2sTest) ... ok
test_constants (__main__.BLAKE2sTest) ... ok
test_constructor (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sTest) ... ok
test_digest_size (__main__.BLAKE2sTest) ... ok
test_empty_bytes (__main__.BLAKE2sTest) ... ok
test_hexdigest (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2sKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2sKeyedTest) ... ok

----------------------------------------------------------------------
Ran 20 tests in 0.022s

OK
 * python3_4: running distutils-r1_run_phase python_test
test_block_size (__main__.BLAKE2bTest) ... ok
test_constants (__main__.BLAKE2bTest) ... ok
test_constructor (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bTest) ... ok
test_digest_size (__main__.BLAKE2bTest) ... ok
test_empty_bytes (__main__.BLAKE2bTest) ... ok
test_hexdigest (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2bKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2bKeyedTest) ... ok
test_block_size (__main__.BLAKE2sTest) ... ok
test_constants (__main__.BLAKE2sTest) ... ok
test_constructor (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sTest) ... ok
test_digest_size (__main__.BLAKE2sTest) ... ok
test_empty_bytes (__main__.BLAKE2sTest) ... ok
test_hexdigest (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2sKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2sKeyedTest) ... ok

----------------------------------------------------------------------
Ran 20 tests in 0.024s

OK
 * python3_5: running distutils-r1_run_phase python_test
test_block_size (__main__.BLAKE2bTest) ... ok
test_constants (__main__.BLAKE2bTest) ... ok
test_constructor (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bTest) ... ok
test_digest_size (__main__.BLAKE2bTest) ... ok
test_empty_bytes (__main__.BLAKE2bTest) ... ok
test_hexdigest (__main__.BLAKE2bTest) ... ok
test_digest (__main__.BLAKE2bKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2bKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2bKeyedTest) ... ok
test_block_size (__main__.BLAKE2sTest) ... ok
test_constants (__main__.BLAKE2sTest) ... ok
test_constructor (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sTest) ... ok
test_digest_size (__main__.BLAKE2sTest) ... ok
test_empty_bytes (__main__.BLAKE2sTest) ... ok
test_hexdigest (__main__.BLAKE2sTest) ... ok
test_digest (__main__.BLAKE2sKeyedTest) ... ok
test_empty_bytes (__main__.BLAKE2sKeyedTest) ... ok
test_hexdigest (__main__.BLAKE2sKeyedTest) ... ok

----------------------------------------------------------------------
Ran 20 tests in 0.025s

OK
 * python2_7: running distutils-r1_run_phase _distutils-r1_clean_egg_info
 * python3_4: running distutils-r1_run_phase _distutils-r1_clean_egg_info
 * python3_5: running distutils-r1_run_phase _distutils-r1_clean_egg_info
>>> Completed testing dev-python/pyblake2-1.1.0

[snip]
Comment 6 Joe Harvell 2018-03-03 18:58:00 UTC
After seeing the tests pass, I decided to reinstall pyblake2.  Now the original problem seems to be gone.

Thanks for your help.
Comment 7 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2018-03-03 19:29:20 UTC
Hmm, I guess this might've included upgrade to 1.1.0 (I've just noticed that 1.0.0 was not the newest version). IN that case, this would explain the fix.