I encountered a SIGSEGV error when calling fdb_run_network(), the stack is as follows:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 __GI_getenv (name=0x7f14dfc58ff0 "B_TLS_CERTIFICATE_FILE") at getenv.c:84
84 getenv.c: No such file or directory.
[Current thread is 1 (Thread 0x7f14cc876700 (LWP 28214))]
(gdb) bt
#0 __GI_getenv (name=0x7f14dfc58ff0 "B_TLS_CERTIFICATE_FILE") at getenv.c:84
#1 0x00007f14df84b723 in fdb_transaction_set_option () from /lib/libfdb_c.so
#2 0x00007f14df86a3a0 in fdb_transaction_set_option () from /lib/libfdb_c.so
#3 0x00007f14df86d00c in fdb_transaction_set_option () from /lib/libfdb_c.so
#4 0x00007f14df813a04 in fdb_transaction_set_option () from /lib/libfdb_c.so
#5 0x00007f14df2785de in fdb_transaction_set_option () from /lib/libfdb_c.so
#6 0x00007f14df6c3228 in fdb_transaction_set_option () from /lib/libfdb_c.so
#7 0x00007f14df6c336b in fdb_transaction_set_option () from /lib/libfdb_c.so
#8 0x00007f14df5f34d0 in fdb_transaction_set_option () from /lib/libfdb_c.so
#9 0x00007f14df81257e in fdb_transaction_set_option () from /lib/libfdb_c.so
#10 0x00007f14df151ef2 in fdb_transaction_set_option () from /lib/libfdb_c.so
#11 0x00007f14df6bbbcf in fdb_transaction_set_option () from /lib/libfdb_c.so
#12 0x00007f14df109b32 in fdb_transaction_set_option () from /lib/libfdb_c.so
#13 0x00007f14df0e5089 in fdb_run_network () from /lib/libfdb_c.so
#14 0x0000559993b248d5 in runFdbNetwork ()
#15 0x00007f14de0a7609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#16 0x00007f14dd5b8133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
There is a fdb parameter FDB_TLS_CERTIFICATE_FILE
, but the stack shows B_TLS_CERTIFICATE_FILE
.
I referred to this issue Issues · grpc/grpc · GitHub
it was a buffer overflow of the output variable.
Please give me some suggestions, thanks!