This seems to be related to the use of the verifyChksum keyword with msiDataObjChksum. I tried the following on an irods server (4.3.2) without any custom rules, and with the PREP installed:
-bash-4.2$ touch testFile
-bash-4.2$ iput -f testFile
-bash-4.2$ ichksum -f testFile
testFile sha2:nEJkXahn9eOAI1Fc8Hnz/zgGryMsS4vQmcUsk2oumNY=
-bash-4.2$ irule -r irods_rule_engine_plugin-python-instance -F /var/lib/irods/scripts/irods/test/python_rules/rulemsiDataObjChksum.r "*dataObject='/tempZone/home/rods/testFile'" "*Flags='forceChksum='"
Collection is /tempZone/home/rods and file is testFile
Saved checksum for file testFile is sha2:nEJkXahn9eOAI1Fc8Hnz/zgGryMsS4vQmcUsk2oumNY=, new checksum is sha2:nEJkXahn9eOAI1Fc8Hnz/zgGryMsS4vQmcUsk2oumNY=
-bash-4.2$ irule -r irods_rule_engine_plugin-python-instance -F /var/lib/irods/scripts/irods/test/python_rules/rulemsiDataObjChksum.r "*dataObject='/tempZone/home/rods/testFile'" "*Flags='verifyChksum='"
remote addresses: 127.0.0.1 ERROR: rcExecMyRule error. status = -154000 SYS_INTERNAL_ERR
This is the error in syslog:
{"log_category":"server","log_level":"critical","log_message":" 0# stacktrace_signal_handler in /lib/libirods_server.so.4.3.2\n 1# 0x00007F5913E29630 in /lib64/libpthread.so.0\n 2# 0x00007F591387E8C1 in /lib64/libc.so.6\n 3# irods::convertFromMsParam(boost::any&, MsParam*) in /lib/libirods_server.so.4.3.2\n 4# irods::default_microservice_manager<RuleExecInfo*>::exec_microservice_adapter(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, RuleExecInfo*, std::__1::list<boost::any, std::__1::allocator<boost::any> >&) in /lib/libirods_server.so.4.3.2\n 5# irods::error irods::default_microservice_manager<RuleExecInfo*>::exec_microservice<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, RuleExecInfo*, irods::unpack&&) in /lib/libirods_server.so.4.3.2\n 6# std::__1::__function::__func<irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&) const::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&), std::__1::allocator<irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&) const::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>, irods::error (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&) in /lib/libirods_server.so.4.3.2\n 7# irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)1>::call<std::__1::function<irods::error (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack>(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> > const&, std::__1::function<irods::error (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)::'lambda'()::operator()() const in /lib/libirods_server.so.4.3.2\n 8# irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)1>::call<std::__1::function<irods::error (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack>(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> > const&, std::__1::function<irods::error (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, RuleExecInfo*&, irods::unpack&&) in /lib/libirods_server.so.4.3.2\n 9# irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&) const in /lib/libirods_server.so.4.3.2\n10# irods::error irods::control<irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(irods::re_pack_inp<std::__1::tuple<> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&), irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&), std::__1::tuple<>, irods::unpack>(std::__1::list<irods::re_pack_inp<std::__1::tuple<> >, std::__1::allocator<irods::re_pack_inp<std::__1::tuple<> > > >&, irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(irods::re_pack_inp<std::__1::tuple<> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&), irods::error irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule<irods::unpack>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::unpack&&) in /lib/libirods_server.so.4.3.2\n11# 0x00007F590DEEE4E8\n12# 0x00007F590DEE678D\n13# 0x00007F590DEEDDEC\n14# 0x00007F590DC16773\n15# 0x00007F590DC18165\n16# 0x00007F590DC1E12A\n17# 0x00007F590DC17E06\n18# 0x00007F590D772E90\n19# 0x00007F590D773021\n20# 0x00007F590D772C93\n21# 0x00007F590D7C64BD\n22# 0x00007F590D772E90\n23# 0x00007F590D81B65C\n24# 0x00007F590D80FBA7\n25# 0x00007F590D81B8D2\n26# 0x00007F590D78AB47\n27# 0x00007F590D772C93\n28# 0x00007F590D773663\n29# 0x00007F590DEE8F62\n30# 0x00007F590DEE2C74\n31# 0x00007F590DF2CDCD\n32# irods::pluggable_rule_engine<std::__1::tuple<> >::exec_rule_text(std::__1::tuple<>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, MsParamArray*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, irods::callback) in /lib/libirods_server.so.4.3.2\n33# irods::rule_engine_context_manager<std::__1::tuple<>, RuleExecInfo*, (irods::rule_execution_manager_pack)0>::exec_rule_text(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> > const&, MsParamArray*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in /lib/libirods_server.so.4.3.2\n34# rsExecMyRule(RsComm*, ExecMyRuleInp*, MsParamArray**) in /lib/libirods_server.so.4.3.2\n35# irods::api_call_adaptor<ExecMyRuleInp*, MsParamArray**>::operator()(irods::plugin_context&, RsComm*, ExecMyRuleInp*, MsParamArray**) in /lib/libirods_server.so.4.3.2\n36# std::__1::__function::__func<irods::api_call_adaptor<ExecMyRuleInp*, MsParamArray**>, std::__1::allocator<irods::api_call_adaptor<ExecMyRuleInp*, MsParamArray**> >, irods::error (irods::plugin_context&, RsComm*, ExecMyRuleInp*, MsParamArray**)>::operator()(irods::plugin_context&, RsComm*&&, ExecMyRuleInp*&&, MsParamArray**&&) in /lib/libirods_server.so.4.3.2\n37# int irods::api_entry::call_handler<ExecMyRuleInp*, MsParamArray**>(RsComm*, ExecMyRuleInp*, MsParamArray**) in /lib/libirods_server.so.4.3.2\n38# rsApiHandler(RsComm*, int, BytesBuf*, BytesBuf*) in /lib/libirods_server.so.4.3.2\n39# readAndProcClientMsg(RsComm*, int) in /lib/libirods_server.so.4.3.2\n40# agentMain(RsComm*) in /lib/libirods_server.so.4.3.2\n41# runIrodsAgentFactory(sockaddr_un) in /lib/libirods_server.so.4.3.2\n42# main::$_5::operator()() const in /usr/sbin/irodsServer\n43# main in /usr/sbin/irodsServer\n44# __libc_start_main in /lib64/libc.so.6\n45# _start in /usr/sbin/irodsServer\n","server_host":"SERVERNAME","server_pid":8824,"server_timestamp":"2024-07-01T09:47:44.033Z","server_type":"server","server_zone":"tempZone","stacktrace_agent_pid":"10718","stacktrace_timestamp_epoch_milliseconds":"106","stacktrace_timestamp_epoch_seconds":"1719827263","stacktrace_timestamp_utc":"2024-07-01T09:47:43.106Z"}
Regards,
Erwin van Wieringen
Op vrijdag 28 juni 2024 om 15:59:56 UTC+2 schreef Robert Verhagen: