I have made som progress. At least I think I know why I can't pass rcConnect().
In the log file smbd produces when it crashes it all goes well until sendStartUpPack(), #10, calls sendRodsMsg(), #9. See #10-#6.
The iRODS-server get a request from the client to connect but a time out occurs as the client crashes. See rodsServerLog below.
During connect, rcConnect() calls sendStartUpPack() which in turn calls getRodsEnv(). The comment above the call getRodsEnv() in sockComm.cpp:L1108 says:
// if the advanced negotiation is requested from the irodsEnv,
// tack those results onto the startup pack option string
I guess Kerberos authentication is classified as 'advanced negotiation' and getRodsEnv(), which calls _getRodsEnv(), which in turn calls getRodsEnvFromFile(). This function, getRodsEnvFromFile() sets myEnv.rodsAuthScheme to 'native' (getRodsEnv.cpp:L190).
Next step is that getRodsEnvFromEnv() is called and myEnv.rodsAuthScheme is set to 'KRB' (see getRodsEnv.cpp:L510) as stated in the environment file.
Please have a look at the printing of rods_data->myEnv below from gdb:
rodsAuthScheme = "KRB\000ve", '\000' <repeats 57 times>
'native' is replaced by 'KRB' but the letters 've' from 'native' are never overwritten.
All looks fine to sendStartUpPack() but sendRodsMsg() cannot handle the data and crashes. Something (an initiator?) is sent to the server but StartUpPack never comes in full. The server logs the error -115000.
Regards
Davor
From gdb, debugging smbd/vfs_stor.c:
load_module_absolute_path: Module '/usr/local/samba/lib/vfs/stor.so' loaded
[VFS_STOR] - home_dir: /data/home/davor
[VFS_STOR] - home_directory: /data/home/davor
[VFS_STOR] - HOME env var: /data/home/davor
[VFS_STOR] - getRodsEnv, status: 0
Breakpoint 1, stor_connect (handle=0x5555558154e0, service=0x5555557ed950 "test",
user=0x5555557fcf20 "TEST\\davor") at ../source3/modules/vfs_stor.c:134
134 rods_data->irods_conn = rcConnect(rods_data->myEnv.rodsHost,
(gdb) p rods_data->myEnv
$1 = {rodsUserName = "davor", '\000' <repeats 58 times>,
xmsgHost = '\000' <repeats 63 times>, xmsgPort = 0,
rodsHome = "/tempZone/home/davor", '\000' <repeats 1067 times>,
rodsCwd = "/tempZone/home/davor", '\000' <repeats 1067 times>,
rodsAuthScheme = "KRB\000ve", '\000' <repeats 57 times>, rodsDefResource = '\000' <repeats 63 times>,
rodsZone = "tempZone", '\000' <repeats 55 times>, rodsLogLevel = 0,
rodsAuthFile = '\000' <repeats 255 times>, rodsDebug = '\000' <repeats 63 times>,
rodsClientServerPolicy = '\000' <repeats 255 times>,
rodsClientServerNegotiation = '\000' <repeats 255 times>, rodsEncryptionKeySize = 0,
rodsEncryptionSaltSize = 0, rodsEncryptionNumHashRounds = 0,
rodsEncryptionAlgorithm = '\000' <repeats 127 times>, rodsDefaultHashScheme = '\000' <repeats 63 times>,
rodsMatchHashPolicy = '\000' <repeats 63 times>, irodsSSLCACertificatePath = '\000' <repeats 1087 times>,
irodsSSLCACertificateFile = '\000' <repeats 1087 times>, irodsSSLVerifyServer = '\000' <repeats 1087 times>,
irodsSSLCertificateChainFile = '\000' <repeats 1087 times>,
irodsSSLCertificateKeyFile = '\000' <repeats 1087 times>,
irodsSSLDHParamsFile = '\000' <repeats 1087 times>, irodsCtrlPlaneKey = '\000' <repeats 1087 times>,
irodsCtrlPlanePort = 0, irodsCtrlPlaneEncryptionNumHashRounds = 0,
irodsCtrlPlaneEncryptionAlgorithm = '\000' <repeats 127 times>, irodsMaxSizeForSingleBuffer = 32,
irodsDefaultNumberTransferThreads = 4, irodsTransBufferSizeForParaTrans = 4,
irodsPluginHome = '\000' <repeats 1087 times>}
(gdb) p rods_data
$2 = (struct stor *) 0x555555815580
(gdb) p rods_data->irods_conn
$3 = (rcComm_t *) 0x0
(gdb) c
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x00007fffe0047403 in boost::unordered::detail::table_impl<boost::unordered::detail::map<std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, boost::any> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::any, irods::irods_string_hash, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) () from /usr/lib/libirods_client.so.4.2.2
(gdb)
---
From smbd.log:
[2018/01/23 18:38:41.973629, 1] ../source3/modules/vfs_stor.c:133(stor_connect)
[VFS_STOR] - getRodsEnv, status: 0
[2018/01/23 18:38:41.997155, 0] ../lib/util/fault.c:78(fault_report)
===============================================================
[2018/01/23 18:38:41.997236, 0] ../lib/util/fault.c:79(fault_report)
INTERNAL ERROR: Signal 11 in pid 1786 (4.7.3)
Please read the Trouble-Shooting section of the Samba HOWTO
[2018/01/23 18:38:41.997283, 0] ../lib/util/fault.c:81(fault_report)
===============================================================
[2018/01/23 18:38:41.997314, 0] ../source3/lib/util.c:804(smb_panic_s3)
PANIC (pid 1786): internal error
[2018/01/23 18:38:41.998186, 0] ../source3/lib/util.c:915(log_stack_trace)
BACKTRACE: 44 stack frames:
#0 /usr/local/samba/lib/libsmbconf.so.0(log_stack_trace+0x1f) [0x7f32452d3236]
#1 /usr/local/samba/lib/libsmbconf.so.0(smb_panic_s3+0x6d) [0x7f32452d3087]
#2 /usr/local/samba/lib/libsamba-util.so.0(smb_panic+0x28) [0x7f32477983a2]
#3 /usr/local/samba/lib/libsamba-util.so.0(+0x2d080) [0x7f3247798080]
#4 /usr/local/samba/lib/libsamba-util.so.0(+0x2d095) [0x7f3247798095]
#5 /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390) [0x7f3247c01390]
#6 /usr/lib/libirods_client.so.4.2.2(_ZN5boost9unordered6detail10table_implINS1_3mapINSt3__19allocatorINS4_4pairIKNS4_12basic_stringIcNS4_11char_traitsIcEENS5_IcEEEENS_3anyEEEEESB_SD_N5irods17irods_string_hashENS4_8equal_toISB_EEEEEixERSC_+0x13) [0x7f32300e9403]
#7 /usr/lib/libirods_client.so.4.2.2(_ZZN5irods11plugin_base4callIJPKcP8BytesBufS5_S5_i11irodsProt_tEEENS_5errorEP8rsComm_tRKNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEN5boost10shared_ptrINS_18first_class_objectEEEDpT_ENKUlRNS_14plugin_contextEPSG_S3_S5_S5_S5_iS6_E_clESQ_SR_S3_S5_S5_S5_iS6_+0x5a) [0x7f323012a30a]
#8 /usr/lib/libirods_client.so.4.2.2(_ZN5irods11plugin_base4callIJPKcP8BytesBufS5_S5_i11irodsProt_tEEENS_5errorEP8rsComm_tRKNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEN5boost10shared_ptrINS_18first_class_objectEEEDpT_+0x1af) [0x7f3230128b7f]
#9 /usr/lib/libirods_client.so.4.2.2(_Z11sendRodsMsgN5boost10shared_ptrIN5irods14network_objectEEEPKcP8BytesBufS7_S7_i11irodsProt_t+0x153) [0x7f3230124cf3]
#10 /usr/lib/libirods_client.so.4.2.2(sendStartupPack+0x233) [0x7f3230124283]
#11 /usr/lib/libirods_client.so.4.2.2(connectToRhost+0x55) [0x7f3230123175]
#12 /usr/lib/libirods_client.so.4.2.2(_rcConnect+0x24d) [0x7f323010f65d]
#13 /usr/lib/libirods_client.so.4.2.2(rcConnect+0x6b) [0x7f323010f3fb]
#14 /usr/local/samba/lib/vfs/stor.so(+0x1f22) [0x7f323037cf22]
#15 /usr/local/samba/lib/private/libsmbd-base-samba4.so(smb_vfs_call_connect+0x4d) [0x7f324733f8bc]
#16 /usr/local/samba/lib/private/libsmbd-base-samba4.so(+0x21c788) [0x7f3247360788]
#17 /usr/local/samba/lib/private/libsmbd-base-samba4.so(make_connection_smb2+0xe1) [0x7f324736183d]
#18 /usr/local/samba/lib/private/libsmbd-base-samba4.so(+0x2416d9) [0x7f32473856d9]
#19 /usr/local/samba/lib/private/libsmbd-base-samba4.so(+0x241afb) [0x7f3247385afb]
#20 /usr/local/samba/lib/private/libsmbd-base-samba4.so(smbd_smb2_request_process_tcon+0x2b1) [0x7f3247384c5a]
#21 /usr/local/samba/lib/private/libsmbd-base-samba4.so(smbd_smb2_request_dispatch+0x15c0) [0x7f3247378b0b]
#22 /usr/local/samba/lib/private/libsmbd-base-samba4.so(+0x239ed0) [0x7f324737ded0]
#23 /usr/local/samba/lib/private/libsmbd-base-samba4.so(+0x239fd6) [0x7f324737dfd6]
#24 /usr/local/samba/lib/private/libtevent.so.0(+0xe4ac) [0x7f32467284ac]
#25 /usr/local/samba/lib/private/libtevent.so.0(+0xeae4) [0x7f3246728ae4]
#26 /usr/local/samba/lib/private/libtevent.so.0(+0xb7e0) [0x7f32467257e0]
#27 /usr/local/samba/lib/private/libtevent.so.0(_tevent_loop_once+0x10f) [0x7f324671f0f1]
#28 /usr/local/samba/lib/private/libtevent.so.0(tevent_common_loop_wait+0x25) [0x7f324671f408]
#29 /usr/local/samba/lib/private/libtevent.so.0(+0xb882) [0x7f3246725882]
#30 /usr/local/samba/lib/private/libtevent.so.0(_tevent_loop_wait+0x2b) [0x7f324671f4ab]
#31 /usr/local/samba/lib/private/libsmbd-base-samba4.so(smbd_process+0xc32) [0x7f324735e6fa]
#32 /usr/local/samba/sbin/smbd(+0xcbf2) [0x558081a89bf2]
#33 /usr/local/samba/lib/private/libtevent.so.0(+0xe4ac) [0x7f32467284ac]
#34 /usr/local/samba/lib/private/libtevent.so.0(+0xeae4) [0x7f3246728ae4]
#35 /usr/local/samba/lib/private/libtevent.so.0(+0xb7e0) [0x7f32467257e0]
#36 /usr/local/samba/lib/private/libtevent.so.0(_tevent_loop_once+0x10f) [0x7f324671f0f1]
#37 /usr/local/samba/lib/private/libtevent.so.0(tevent_common_loop_wait+0x25) [0x7f324671f408]
#38 /usr/local/samba/lib/private/libtevent.so.0(+0xb882) [0x7f3246725882]
#39 /usr/local/samba/lib/private/libtevent.so.0(_tevent_loop_wait+0x2b) [0x7f324671f4ab]
#40 /usr/local/samba/sbin/smbd(+0xd98c) [0x558081a8a98c]
#41 /usr/local/samba/sbin/smbd(main+0x18b7) [0x558081a8cb32]
#42 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f3243951830]
#43 /usr/local/samba/sbin/smbd(_start+0x29) [0x558081a82fd9]
[2018/01/23 18:38:41.998833, 0] ../source3/lib/util.c:816(smb_panic_s3)
smb_panic(): calling panic action [/bin/sleep 999999999]
---
From rodsServerLog:
Jan 24 05:40:20 pid:1164 remote addresses: 192.168.1.8 ERROR: readWorkerTask - readStartupPack failed. -115000