Quantcast
Channel: SCN : Unanswered Discussions - Scripting Languages
Viewing all articles
Browse latest Browse all 376

SAPNWRFC for Ruby on AIX fails IOT trap (core dumped)

$
0
0

Hi Piers,

 

first of all thanks a million for the SAPNWRFC binding you wrote for Ruby. I really appreciate your efforts there. Here in Component Validation we use Ruby for an internal backup tool that helps us archiving and quickly cross-restoring SAP systems (ABAP and JAVA stacks) within our heterogeneous Unix/Linux server environment. Being able to do RFC connects (Unicode!) would really be an additional driving argument pro Ruby.

 

The gem is working fine so far on Linux, Solaris and HPUX IA64. On AIX however it makes the interpreter crash. While compiling with xlc runs ok with all the NWRFCSDK libs properly linked etc. the Ruby interpreter instantly aborts with an IOT trap (core dumped) when creating an RFC connection handle:

 

This is what the core file says:

 

dbx AIX-1.9.3-p194/bin/ruby core

Type 'help' for help.

[using memory image in core]

reading symbolic information ...warning: no source compiled with -g

IOT/Abort trap in pthread_kill at 0x9000000007ecd30 ($t1)

0x9000000007ecd30 (pthread_kill+0xb0) e8410028 ld   r2,0x28(r1)

IOT/Abort trap in pthread_kill at 0x9000000007ecd30 ($t1)

0x9000000007ecd30 (pthread_kill+0xb0) e8410028 ld   r2,0x28(r1)

(dbx) where

pthread_kill(??, ??) at 0x9000000007ecd30

_p_raise(??) at 0x9000000007ec5e4

  1. raise.raise(??) at 0x9000000000384e8

abort() at 0x9000000000536e4

rb_bug(0x1001f203c, 0x110020b18, 0x8ffffffffffffac1, 0xf00000002ff48000, 0x1000b2ae0, 0xa00000000000d032, 0xf1000a02003cbc00, 0xf000000030018f20) at 0x10005514c

sigsegv(0xb0000000b, 0x1101c7e50, 0x1101c7ba0) at 0x1000b2b80

_STL::_Rb_tree<int,_STL::pair<const int,RfcConverter*>,_STL::_Select1st<_STL::pair<const int,RfcConverter*> >,_STL::less<int>,_STL::allocator<_STL::pair<const int,RfcConverter*> > >::_M_insert(_STL::_Rb_tree_node_base*,_STL::_Rb_tree_node_base*,const _STL::pair<const int,RfcConverter*>&,_STL::_Rb_tree_node_base*)(??, ??, ??, ??, ??, ??) at 0x90000000255ba24

_STL::_Rb_tree<int,_STL::pair<const int,RfcConverter*>,_STL::_Select1st<_STL::pair<const int,RfcConverter*> >,_STL::less<int>,_STL::allocator<_STL::pair<const int,RfcConverter*> > >::insert_unique(const _STL::pair<const int,RfcConverter*>&)(??, ??, ??) at 0x90000000255b7ac

_STL::_Rb_tree<int,_STL::pair<const int,RfcConverter*>,_STL::_Select1st<_STL::pair<const int,RfcConverter*> >,_STL::less<int>,_STL::allocator<_STL::pair<const int,RfcConverter*> > >::insert_unique(_STL::_Rb_tree_iterator<_STL::pair<int,RfcConverter*>,_STL::_Nonconst_traits<_STL::pair<int,RfcConverter*> > >,const _STL::pair<const int,RfcConverter*>&)(??, ??, ??, ??) at 0x900000002559ec8

RfcConverter::getConverter(const unsigned short*,const unsigned short*,short,unsigned int)(??, ??, ??, ??) at 0x9000000025570c0

RfcConverter::utf8Tosapuc(const unsigned short*,const unsigned char*,unsigned int,unsigned short*,unsigned int*,unsigned int*)(??, ??, ??, ??, ??, ??) at 0x9000000025571ac

  1. nrfc.RfcUTF8ToSAPUC(??, ??, ??, ??, ??, ??) at 0x900000002401570

u8to16(0x1103ea1a0) at 0x900000000cfaa00

SAPNW_RFC_HANDLE_new(0x1105aae90, 0x1103d8dd8) at 0x900000000cfde50

call_cfunc(0x9001000a0437378, 0x1105aae90, 0x100000001, 0x100000001, 0x110065830) at 0x10006d1fc

vm_call_cfunc(0x110060c30, 0x110164bc8, 0x100000001, 0x1105aae90, 0x0, 0x11072f510) at 0x10006ff30

vm_call_method(0x110060c30, 0x110164bc8, 0x100000001, 0x0, 0x0, 0x3e8, 0x11072f510, 0x1105aae90) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

vm_call0(0x110060c30, 0x1103d8dd8, 0x1c8, 0x100000001, 0x1100657e0, 0x1105612f0) at 0x10006dc78

rb_call0(0x1103d8dd8, 0x1c8, 0x100000001, 0x1100657e0, 0x100000001, 0x6) at 0x10006e344

rb_call(0x1103d8dd8, 0x1c8, 0x100000001, 0x1100657e0, 0x100000001) at 0x10006e3c8

rb_funcall2(0x1103d8dd8, 0x1c8, 0x100000001, 0x1100657e0) at 0x10006c778

rb_obj_call_init(0x1103d8dd8, 0x100000001, 0x1100657e0) at 0x1000c0728

rb_class_new_instance(0x100000001, 0x1100657e0, 0x110588098) at 0x100064714

call_cfunc(0x1100246b0, 0x110588098, 0xffffffffffffffff, 0x100000001, 0x1100657e0) at 0x10006d1a4

vm_call_cfunc(0x110060c30, 0x110164cd0, 0x100000001, 0x110588098, 0x0, 0x1101d6310) at 0x10006ff30

vm_call_method(0x110060c30, 0x110164cd0, 0x100000001, 0x0, 0x0, 0x3e8, 0x1101d6310, 0x110588098) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

eval_string_with_cref(0x110197290, 0x110337370, 0x1101969f8, 0x0, 0x1101961c0, 0x100000001) at 0x100078eb0

eval_string(0x110197290, 0x110337370, 0x1101969f8, 0x1101961c0, 0x100000001) at 0x1000792e0

rb_f_eval(0x400000004, 0x110065750, 0x110197290) at 0x1000801b0

call_cfunc(0x11002c0c0, 0x110197290, 0xffffffffffffffff, 0x400000004, 0x110065750) at 0x10006d1a4

vm_call_cfunc(0x110060c30, 0x110164e30, 0x400000004, 0x110197290, 0x0, 0x1101f2590) at 0x10006ff30

vm_call_method(0x110060c30, 0x110164e30, 0x400000004, 0x0, 0x8, 0xb20, 0x1101f2590, 0x110197290) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

invoke_block_from_c(0x110060c30, 0x110165118, 0x110199ef0, 0x0, 0x0, 0x0, 0x0) at 0x10006c424

vm_yield(0x110060c30, 0x0, 0x0) at 0x100079c08

rb_yield_0(0x0, 0x0) at 0x100079c6c

loop_i() at 0x100081734

rb_rescue2(0x11002c390, 0x0, 0x0, 0x0, 0x1101b4390, 0x0, 0x110065620, 0x0) at 0x1000bd794

rb_f_loop(0x110199ef0) at 0x1000817f4

call_cfunc(0x11002c138, 0x110199ef0, 0x0, 0x0, 0x110065620) at 0x10006d1cc

vm_call_cfunc(0x110060c30, 0x1101650f0, 0x0, 0x110199ef0, 0x110165118, 0x1101f3190) at 0x10006ff30

vm_call_method(0x110060c30, 0x1101650f0, 0x0, 0x110165118, 0x8, 0xb50, 0x1101f3190, 0x110199ef0) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

invoke_block_from_c(0x110060c30, 0x110165220, 0x110199ef0, 0x100000001, 0xfffffffffffb060, 0x0, 0x0) at 0x10006c424

vm_yield(0x110060c30, 0x100000001, 0xfffffffffffb060) at 0x100079c08

rb_yield_0(0x100000001, 0xfffffffffffb060) at 0x100079c6c

catch_i(0x46250e, 0x0) at 0x10008197c

rb_catch_obj(0x46250e, 0x11002c3a8, 0x0) at 0x10007a444

rb_f_catch(0x100000001, 0x1100655e0) at 0x100081a2c

call_cfunc(0x11002c108, 0x110199ef0, 0xffffffffffffffff, 0x100000001, 0x1100655e0) at 0x10006d1a4

vm_call_cfunc(0x110060c30, 0x1101651f8, 0x100000001, 0x110199ef0, 0x110165220, 0x1101f2d90) at 0x10006ff30

vm_call_method(0x110060c30, 0x1101651f8, 0x100000001, 0x110165220, 0x8, 0xb40, 0x1101f2d90, 0x110199ef0) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

invoke_block_from_c(0x110060c30, 0x1101653d8, 0x1103c0f08, 0x100000001, 0xfffffffffffd410, 0x0, 0x0) at 0x10006c424

vm_yield(0x110060c30, 0x100000001, 0xfffffffffffd410) at 0x100079c08

rb_yield_0(0x100000001, 0xfffffffffffd410) at 0x100079c6c

catch_i(0x39d50e, 0x0) at 0x10008197c

rb_catch_obj(0x39d50e, 0x11002c3a8, 0x0) at 0x10007a444

rb_f_catch(0x100000001, 0x110065570) at 0x100081a2c

call_cfunc(0x11002c108, 0x1103c0f08, 0xffffffffffffffff, 0x100000001, 0x110065570) at 0x10006d1a4

vm_call_cfunc(0x110060c30, 0x1101653b0, 0x100000001, 0x1103c0f08, 0x1101653d8, 0x1101f2d90) at 0x10006ff30

vm_call_method(0x110060c30, 0x1101653b0, 0x100000001, 0x1101653d8, 0x8, 0xb40, 0x1101f2d90, 0x1103c0f08) at 0x1000700e0

vm_exec_core(0x110060c30, 0x0) at 0x1000747c0

vm_exec(0x110060c30) at 0x10007806c

rb_iseq_eval_main(0x11039fab0) at 0x10007fd48

ruby_exec_internal(0x11039fab0) at 0x1000bf0f4

ruby_exec_node(0x11039fab0) at 0x1000bf180

ruby_run_node(0x11039fab0) at 0x1000bf958

main(0x400000004, 0xffffffffffffb58) at 0x1000004e8

(dbx)

 

 

Any suggestion would be appreciated.

 

Kind regards,

Norman


Viewing all articles
Browse latest Browse all 376

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>