Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Mono crashes #8588

@Rombersoft

Description

@Rombersoft

I have C library for working with this pos_terminal https://www.verifone.com/en/us/devices/countertops-pin-pads/vx-520

I use

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_open", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean Open(ref IntPtr handle_p, string name, string log);

[DllImport("libpos.so.1.24.0", EntryPoint = "pos_set", CallingConvention = CallingConvention.Cdecl)]
private extern static Boolean Set(ref IntPtr handle_p, string param, string val);

And my application crashes after second method calling

Steps to Reproduce

Project is here https://www.dropbox.com/s/8l0czx4091y1usj/BugZilla.tar.gz?dl=0
Dependencies and manuals are here https://www.dropbox.com/s/ip59ivgkkaid7st/posapi-centos-x64_1.24.tar.bz2?dl=0

Current Behavior

Expected Behavior

On which platforms did you notice this

[ ] macOS
[*] Linux
[ ] Windows

Version Used:
Debian 9 Stretch

Stacktrace

myName@BABYLON-5:/media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug$ sudo mono --debug ConsoleApplication.exe 
Stacktrace:

  at <unknown> <0xffffffff>
  at (wrapper managed-to-native) PosTerminal.CommandWrapper.Set (intptr&,string,string) [0x0001f] in <9b3bfb8fdc44474d831a941f1e5698ec>:0
  at PosTerminal.CommandWrapper.SetParam (string,string) [0x00004] in /media/myName/Documents/Projects/NewBasket/PosTerminal/CommandWrapper.cs:168
  at ConsoleApplication.MainClass.Main (string[]) [0x00022] in /media/myName/Documents/Projects/NewBasket/ConsoleApplication/Program.cs:15
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) [0x00051] in <f3c7ded2422f4a6e8752f69fae0a14d1>:0
/proc/self/maps:
416f1000-41701000 rwxp 00000000 00:00 0 
4190b000-4191b000 rwxp 00000000 00:00 0 
56458a7ba000-56458abdb000 r-xp 00000000 08:18 2492164                    /usr/bin/mono-sgen
56458addb000-56458ade2000 r--p 00421000 08:18 2492164                    /usr/bin/mono-sgen
56458ade2000-56458ade6000 rw-p 00428000 08:18 2492164                    /usr/bin/mono-sgen
56458ade6000-56458adfd000 rw-p 00000000 00:00 0 
56458c985000-56458ca41000 rw-p 00000000 00:00 0                          [heap]
7f7284000000-7f7284021000 rw-p 00000000 00:00 0 
7f7284021000-7f7288000000 ---p 00000000 00:00 0 
7f7288cfa000-7f7288e6c000 r-xp 00000000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7288e6c000-7f728906c000 ---p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f728906c000-7f7289076000 r--p 00172000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7289076000-7f7289078000 rw-p 0017c000 08:18 2893317                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
7f7289078000-7f728907c000 rw-p 00000000 00:00 0 
7f728907c000-7f72890a2000 r-xp 00000000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72890a2000-7f72892a2000 ---p 00026000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72892a2000-7f72892a4000 rw-p 00026000 08:15 379958                     /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
7f72892a4000-7f72892ad000 ---p 00000000 00:00 0 
7f72892ad000-7f72894a5000 rw-p 00000000 00:00 0 
7f72894a5000-7f7289a0d000 r-xp 00000000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289a0d000-7f7289c0c000 ---p 00568000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0c000-7f7289c0d000 r--p 00567000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0d000-7f7289c0e000 rw-p 00568000 08:18 2892802                    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
7f7289c0e000-7f7289c34000 rw-p 00000000 00:00 0 
7f7289c34000-7f7289fff000 r--p 00000000 08:18 2891934                    /usr/lib/mono/4.5/mscorlib.dll
7f7289fff000-7f728afff000 rw-p 00000000 00:00 0 
7f728afff000-7f728b000000 ---p 00000000 00:00 0 
7f728b000000-7f728bc00000 rw-p 00000000 00:00 0 
7f728bc26000-7f728bcd8000 rw-p 00000000 00:00 0 
7f728bcd9000-7f728bd0b000 rw-p 00000000 00:00 0 
7f728bd0b000-7f728bd3c000 r--p 00000000 08:18 3952192                    /usr/share/locale/uk/LC_MESSAGES/libc.mo
7f728bd3c000-7f728bd3d000 rw-p 00000000 00:00 0 
7f728bd3d000-7f728bd9c000 ---p 00000000 00:00 0 
7f728bd9c000-7f728bf31000 r-xp 00000000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728bf31000-7f728c131000 ---p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c131000-7f728c135000 r--p 00195000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c135000-7f728c137000 rw-p 00199000 08:18 4588406                    /lib/x86_64-linux-gnu/libc-2.24.so
7f728c137000-7f728c13b000 rw-p 00000000 00:00 0 
7f728c13b000-7f728c151000 r-xp 00000000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c151000-7f728c350000 ---p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c350000-7f728c351000 r--p 00015000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c351000-7f728c352000 rw-p 00016000 08:18 4594524                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7f728c352000-7f728c36a000 r-xp 00000000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c36a000-7f728c569000 ---p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c569000-7f728c56a000 r--p 00017000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c56a000-7f728c56b000 rw-p 00018000 08:18 4588421                    /lib/x86_64-linux-gnu/libpthread-2.24.so
7f728c56b000-7f728c56f000 rw-p 00000000 00:00 0 
7f728c56f000-7f728c572000 r-xp 00000000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c572000-7f728c771000 ---p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c771000-7f728c772000 r--p 00002000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c772000-7f728c773000 rw-p 00003000 08:18 4588409                    /lib/x86_64-linux-gnu/libdl-2.24.so
7f728c773000-7f728c77a000 r-xp 00000000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c77a000-7f728c979000 ---p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c979000-7f728c97a000 r--p 00006000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c97a000-7f728c97b000 rw-p 00007000 08:18 4588423                    /lib/x86_64-linux-gnu/librt-2.24.so
7f728c97b000-7f728ca7e000 r-xp 00000000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728ca7e000-7f728cc7d000 ---p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7d000-7f728cc7e000 r--p 00102000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7e000-7f728cc7f000 rw-p 00103000 08:18 4588410                    /lib/x86_64-linux-gnu/libm-2.24.so
7f728cc7f000-7f728cca2000 r-xp 00000000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cca3000-7f728cce4000 rw-p 00000000 00:00 0 
7f728cce4000-7f728ce76000 r--p 00000000 08:18 2758121                    /usr/lib/locale/locale-archive
7f728ce76000-7f728ce7b000 rw-p 00000000 00:00 0 
7f728ce7c000-7f728ce7d000 r--p 00000000 08:15 866                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.pdb
7f728ce7d000-7f728ce80000 r--p 00000000 08:15 865                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/PosTerminal.dll
7f728ce80000-7f728ce81000 r--p 00000000 08:15 869                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.pdb
7f728ce81000-7f728ce89000 rw-p 00000000 00:00 0 
7f728ce89000-7f728ce90000 r--s 00000000 08:18 2894135                    /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f728ce90000-7f728ce95000 rw-p 00000000 00:00 0 
7f728ce95000-7f728ce97000 r--p 00000000 08:15 868                        /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/ConsoleApplication.exe
7f728ce97000-7f728ce9e000 rw-p 00000000 00:00 0 
7f728ce9e000-7f728ce9f000 rw-s 00000000 00:13 300913                     /dev/shm/mono.4723
7f728ce9f000-7f728cea2000 rw-p 00000000 00:00 0 
7f728cea2000-7f728cea3000 r--p 00023000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cea3000-7f728cea4000 rw-p 00024000 08:18 4588365                    /lib/x86_64-linux-gnu/ld-2.24.so
7f728cea4000-7f728cea5000 rw-p 00000000 00:00 0 
7ffe07899000-7ffe078a1000 ---p 00000000 00:00 0 
7ffe08077000-7ffe08098000 rw-p 00000000 00:00 0                          [stack]
7ffe080e0000-7ffe080e2000 r--p 00000000 00:00 0                          [vvar]
7ffe080e2000-7ffe080e4000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Native stacktrace:

	mono(+0xcb3ac) [0x56458a8853ac]
	mono(+0x160a10) [0x56458a91aa10]
	/media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0(_ZN2cp7storage3setEPKcS2_b+0x50) [0x7f7289091990]

Debug info from gdb:

[New LWP 4724]
[New LWP 4725]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
29	../sysdeps/unix/sysv/linux/waitpid.c: Немає такого файла або каталогу.
  Id   Target Id         Frame 
* 1    Thread 0x7f728ce76740 (LWP 4723) "mono" 0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
  2    Thread 0x7f728b7ff700 (LWP 4724) "SGen worker" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  3    Thread 0x7f72894a4700 (LWP 4725) "Finalizer" 0x00007f728c361536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x56458adeb9a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205

Thread 3 (Thread 0x7f72894a4700 (LWP 4725)):
#0  0x00007f728c361536 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x56458adeb9a0 <finalizer_sem>) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x56458adeb9a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:111
#2  0x00007f728c3615e4 in __new_sem_wait_slow (sem=0x56458adeb9a0 <finalizer_sem>, abstime=0x0) at sem_waitcommon.c:181
#3  0x00007f728c361679 in __new_sem_wait (sem=sem@entry=0x56458adeb9a0 <finalizer_sem>) at sem_wait.c:29
#4  0x000056458aa35932 in mono_os_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x56458adeb9a0 <finalizer_sem>) at ../../mono/utils/mono-os-semaphore.h:209
#5  mono_coop_sem_wait (flags=MONO_SEM_FLAGS_ALERTABLE, sem=0x56458adeb9a0 <finalizer_sem>) at ../../mono/utils/mono-coop-semaphore.h:43
#6  finalizer_thread (unused=unused@entry=0x0) at gc.c:852
#7  0x000056458a9f451c in start_wrapper_internal (stack_ptr=<optimized out>, start_info=0x0) at threads.c:1012
#8  start_wrapper (data=0x56458c9e8440) at threads.c:1072
#9  0x00007f728c359494 in start_thread (arg=0x7f72894a4700) at pthread_create.c:333
#10 0x00007f728be84acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 2 (Thread 0x7f728b7ff700 (LWP 4724)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x000056458aa92c4b in mono_os_cond_wait (mutex=0x56458adfa860 <lock>, cond=0x56458adfa820 <work_cond>) at ../../mono/utils/mono-os-mutex.h:173
#2  get_work (job=<synthetic pointer>, do_idle=<synthetic pointer>, work_context=<synthetic pointer>, worker_index=0) at sgen-thread-pool.c:165
#3  thread_func (data=<optimized out>) at sgen-thread-pool.c:196
#4  0x00007f728c359494 in start_thread (arg=0x7f728b7ff700) at pthread_create.c:333
#5  0x00007f728be84acf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97

Thread 1 (Thread 0x7f728ce76740 (LWP 4723)):
#0  0x00007f728c362b3a in __waitpid (pid=pid@entry=4727, stat_loc=stat_loc@entry=0x7ffe080947fc, options=options@entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x000056458a885490 in mono_handle_native_crash (signal=signal@entry=0x56458aabd824 "SIGSEGV", ctx=ctx@entry=0x0, info=info@entry=0x0) at mini-exceptions.c:2830
#2  0x000056458a91aa10 in altstack_handle_and_restore (ctx=0x7ffe08095330, obj=0x0, stack_ovf=0) at exceptions-amd64.c:849
#3  0x00007f7289091990 in cp::storage::set(char const*, char const*, bool) () from /media/myName/Documents/Projects/NewBasket/ConsoleApplication/bin/Debug/libpos.so.1.24.0
#4  0x0000000000000000 in ?? ()

=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

Перервано

https://bugzilla.xamarin.com/show_bug.cgi?id=46511

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions