irods icon indicating copy to clipboard operation
irods copied to clipboard

modifying resource context via CLI results in stacktrace

Open donsizemore opened this issue 3 years ago • 9 comments

Bug Report

iRODS Version, OS and Version

iRODS 4.2.9, CentOS 7.9.2009

What did you try to do?

$ iadmin modresc awstestResc context "S3_DEFAULT_HOSTNAME=s3.us-east-1.amazonaws.com;S3_AUTH_FILE=/var/lib/irods/.aws/irods_s3_auth;S3_REGIONNAME=us-east-1;S3_RETRY_COUNT=3;S3_WAIT_TIME_SEC=5;S3_PROTO=HTTPS;ARCHIVE_NAMING_POLICY=consistent;HOST_MODE=cacheless_attached"

Expected behavior

¿Should update resc_context value in r_resc_main table?

Observed behavior (including steps to reproduce, if applicable)

DB entry isn't updated, iRODS crashes, rodsLog says:

Jun 17 10:39:07 pid:28217 remote addresses: my-server, ::1 ERROR: 

Caught signal [11]. Dumping stacktrace and exiting

Dumping stack trace
<0>     Offset:         Address: 0x7f2cc0744423 /lib/libirods_server.so.4.2.9(+0xae1423) [0x7f2cc0744423]
<1>     Offset:         Address: 0x7f2cbe253630 /lib64/libpthread.so.0(+0xf630) [0x7f2cbe253630]
<2>     Offset:         Address: 0x7f2cbdee40d4 /lib64/libc.so.6(fclose+0x4) [0x7f2cbdee40d4]
<3>     Offset: 0x529   Address: 0x7f2cb3a82249 readS3AuthInfo(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)
<4>     Offset: 0x4e0   Address: 0x7f2cb3a82bc0 s3ReadAuthInfo(irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)
<5>     Offset: 0x3eb   Address: 0x7f2cb3a9236b s3StartOperation(irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)
<6>     Offset: 0xd     Address: 0x7f2cc118096d std::__1::__function::__func<irods::error (*)(irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&), std::__1::allocator<irods::error (*)(irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)>, irods::error (irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)>::operator()(irods::lookup_table<boost::any, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, irods::irods_string_hash>&)
<7>     Offset: 0x51    Address: 0x7f2cc0708bb1 irods::resource_manager::start_resource_plugins()
<8>     Offset: 0x6f8   Address: 0x7f2cc07014e8 irods::resource_manager::init_from_catalog(RsComm*)
<9>     Offset: 0x397   Address: 0x7f2cc047ced7 initServerInfo(int, RsComm*)
<10>    Offset: 0x24    Address: 0x7f2cc047f534 initAgent(int, RsComm*)
<11>    Offset: 0x18a8  Address: 0x7f2cc0772398 runIrodsAgentFactory(sockaddr_un)
<12>    Offset:         Address: 0x42ce58       /usr/sbin/irodsServer(main+0x1708) [0x42ce58]
<13>    Offset:         Address: 0x7f2cbde98555 /lib64/libc.so.6(__libc_start_main+0xf5) [0x7f2cbde98555]
<14>    Offset:         Address: 0x42b56c       /usr/sbin/irodsServer() [0x42b56c]

Jun 17 10:39:07 pid:28124  ERROR: Agent process [28217] exited with status [11]

Manually blanking resc_context for that resource in the DB allows iRODS to restart cleanly.

I'm not certain what I'm doing wrong; if this is a result of stupid user behavior please feel free to close this issue outright.

donsizemore avatar Jun 17 '21 14:06 donsizemore