[Pkg-javascript-devel] Bug#1011339: Bug#1011339: [Pkg-openssl-devel] Bug#1011339: openssl: missing errors strings on mipsel

Sebastian Andrzej Siewior sebastian at breakpoint.cc
Fri Jun 10 22:53:54 BST 2022


On 2022-06-08 20:07:48 [+0200], Jérémy Lal wrote:
> Hi Sebastian,
Hi,

> Any hint or idea about this ? Even wild ideas that I could try,
> before I have to remove the files from mips.

before I forget:
on amd64 the entry point to init is:

| #0  OPENSSL_init_crypto (opts=opts at entry=64, settings=settings at entry=0x0) at ../crypto/init.c:563
| #1  0x00007fbb6ede32b7 in ossl_engine_table_select (table=table at entry=0x7fbb6f0806c0 <rand_table>, nid=nid at entry=1,
|     f=f at entry=0x7fbb6ef6e985 "../crypto/engine/tb_rand.c", l=l at entry=62) at ../crypto/engine/eng_table.c:206
| #2  0x00007fbb6ede490d in ENGINE_get_default_RAND () at ../crypto/engine/tb_rand.c:61
| #3  0x00007fbb6ee6a8f0 in RAND_get_rand_method () at ../crypto/rand/rand_lib.c:208
| #4  0x00007fbb6ee6afb6 in RAND_status () at ../crypto/rand/rand_lib.c:311
| #5  0x00007fbb6ffdd310 in node::crypto::CheckEntropy () at ../src/crypto/crypto_util.cc:66
| #6  0x00007fbb6ffdd342 in node::crypto::EntropySource (buffer=0x7ffcc47a8ef0 "", length=8) at ../src/crypto/crypto_util.cc:79
| #7  0x00007fbb70a11f56 in v8::base::RandomNumberGenerator::RandomNumberGenerator (
|     this=0x7fbb71e75740 <v8::base::(anonymous namespace)::GetPlatformRandomNumberGenerator()::object>) at ../deps/v8/src/base/utils/random-number-generator.cc:41
| #8  0x00007fbb70a12ebe in v8::base::LeakyObject<v8::base::RandomNumberGenerator>::LeakyObject<>() (
|     this=0x7fbb71e75740 <v8::base::(anonymous namespace)::GetPlatformRandomNumberGenerator()::object>) at /usr/include/c++/11/new:175
| #9  v8::base::(anonymous namespace)::GetPlatformRandomNumberGenerator () at ../deps/v8/src/base/platform/platform-posix.cc:100
| #10 v8::base::(anonymous namespace)::GetPlatformRandomNumberGenerator () at ../deps/v8/src/base/platform/platform-posix.cc:100
| #11 v8::base::OS::GetRandomMmapAddr () at ../deps/v8/src/base/platform/platform-posix.cc:289
| #12 0x00007fbb7035c1b6 in v8::internal::Heap::SetUp (this=this at entry=0x555611f6c540) at ../deps/v8/src/heap/heap.cc:5523
| #13 0x00007fbb702e8539 in v8::internal::Isolate::Init (this=this at entry=0x555611f62240, startup_snapshot_data=startup_snapshot_data at entry=0x7ffcc47a92b0,
|     read_only_snapshot_data=read_only_snapshot_data at entry=0x7ffcc47a92d0, can_rehash=<optimized out>) at ../deps/v8/src/execution/isolate.cc:3650
| #14 0x00007fbb702e9158 in v8::internal::Isolate::InitWithSnapshot (this=this at entry=0x555611f62240, startup_snapshot_data=startup_snapshot_data at entry=0x7ffcc47a92b0,
|     read_only_snapshot_data=read_only_snapshot_data at entry=0x7ffcc47a92d0, can_rehash=<optimized out>) at ../deps/v8/src/execution/isolate.cc:3519
| #15 0x00007fbb706fb8be in v8::internal::Snapshot::Initialize (isolate=0x555611f62240) at ../deps/v8/src/snapshot/snapshot.cc:168
| #16 v8::internal::Snapshot::Initialize (isolate=isolate at entry=0x555611f62240) at ../deps/v8/src/snapshot/snapshot.cc:149
| #17 0x00007fbb701cb756 in v8::Isolate::Initialize (isolate=0x555611f62240, params=...) at ../deps/v8/src/api/api.cc:8665
| #18 0x00007fbb6fe99b45 in node::NodeMainInstance::NodeMainInstance (this=this at entry=0x7ffcc47a9490, params=params at entry=0x7ffcc47a94f0, event_loop=0x7fbb6f2ae260,
|     platform=platform at entry=0x555611f5ce70, args=..., exec_args=std::vector of length 2, capacity 2 = {...}, per_isolate_data_indexes=0x0)
|     at ../src/node_main_instance.cc:94
| #19 0x00007fbb6fe101eb in node::Start (argc=<optimized out>, argv=<optimized out>) at ../src/node.cc:1168
| #20 0x00007fbb6f2ef7fd in __libc_start_main (main=0x5556110ba000 <main(int, char**)>, argc=3, argv=0x7ffcc47a96b8, init=<optimized out>, fini=<optimized out>,
|     rtld_fini=<optimized out>, stack_end=0x7ffcc47a96a8) at ../csu/libc-start.c:332
| #21 0x00005556110ba0da in _start ()

basivally, Heap::SetUp() -> node::crypto::EntropySource() -> RAND_status()
and this does the init including loading strings.

On mipsel and assuming the backtrace works:
|  #0  OPENSSL_init_crypto (opts=<optimized out>, settings=0x55645ac0) at ../crypto/init.c:563
|  #1  0x75d61f9c in std::_Rb_tree_node<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::_M_valptr () at ../src/node.cc:1083
|  #2  0x75d62660 in std::allocator<std::__detail::_Hash_node_base*>::~allocator () at ../src/node.cc:975
|  #3  0x75d626bc in std::__get_helper<0u, node::NodeTraceStateObserver*, std::default_delete<node::NodeTraceStateObserver> > () at ../src/node.cc:1142
|  #4  0x7545b540 in __libc_start_main () from /lib/mipsel-linux-gnu/libc.so.6
|  #5  0x5557fb74 in __start ()

So it appears we get there earlier and from libstd++. It could be that the
backtrace is just nuts. Now I am a little curious why strings are not loaded
eventually…
 
> Jérémy

Sebastian



More information about the Pkg-javascript-devel mailing list