Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenFileDialog crashes when browsing to a folder that has a 32-bit RGB TIFF file in it #17962

Closed
mcovington opened this issue Nov 28, 2019 · 4 comments

Comments

@mcovington
Copy link

mcovington commented Nov 28, 2019

Steps to Reproduce

Under Linux Mint, using a C# program compiled under Windows and running under mono, open an OpenFileDialog and browse to a folder containing a 32-bit RGB TIFF file (common in astronomical imaging). Program crashes immediately with a SIGSEGV. Educated guess is that it can't create an icon for this type of graphics file and cannot recover from the inability to do so.

Described in detail, with files, code, and error messages, at
http://www.covingtoninnovations.com/michael/blog/1911/index.html#x191129

See first comment for a very short program that reproduces it.

Current Behavior

When the OpenFileDialog opens a folder containing such a file, there is a pause of 0 to 1 second and then the program terminates completely. This is not provoked by clicking anything, but merely entering a folder, although the slight delay can be deceptive. Error messages appear on the console, ending with:

=================================================================
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.

Expected Behavior

Open file dialog should allow browsing the folder and selecting the file.

On which platforms did you notice this

[ ] macOS
[* ] Linux
[ ] Windows

Version Used:

4.15.0-70-generic

Linux Mint 19.1 Tessa \n \l

Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1ubuntu1)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

Stacktrace

Stacktrace:

Native stacktrace:

mono(+0xc8514) [0x5582a240b514]
mono(+0x1217ce) [0x5582a24647ce]
mono(+0x3d7e3) [0x5582a23807e3]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890) [0x7fa1dff1f890]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x3d) [0x7fa1df99b98d]
/usr/lib/x86_64-linux-gnu/libtiff.so.5(TIFFRGBAImageEnd+0x12) [0x7fa1d7241272]
/usr/lib/libgdiplus.so.0(+0x44973) [0x7fa1dc454973]
/usr/lib/libgdiplus.so.0(GdipLoadImageFromFile+0x1e8) [0x7fa1dc434f48]
/usr/lib/libgdiplus.so.0(GdipCreateBitmapFromFile+0x9) [0x7fa1dc421899]
[0x4185d0c6]

Debug info from gdb:

[New LWP 4113]
[New LWP 4114]
[New LWP 4121]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fa1dfa18bf9 in __GI___poll (fds=0x7fa1df1b2f48, nfds=2, timeout=15) at ../sysdeps/unix/sysv/linux/poll.c:29
29 ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
Id Target Id Frame

  • 1 Thread 0x7fa1e0ad5780 (LWP 4112) "Main" 0x00007fa1dfa18bf9 in __GI___poll (fds=0x7fa1df1b2f48, nfds=2, timeout=15) at ../sysdeps/unix/sysv/linux/poll.c:29
    2 Thread 0x7fa1defff700 (LWP 4113) "SGen worker" 0x00007fa1dff1a9f3 in futex_wait_cancelable (private=, expected=0, futex_word=0x5582a28fea08) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
    3 Thread 0x7fa1df625700 (LWP 4114) "Finalizer" 0x00007fa1dff1d6d6 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x5582a28ef640) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
    4 Thread 0x7fa1cddff700 (LWP 4121) "Main" 0x00007fa1dff1f23a in __waitpid (pid=4122, stat_loc=0x7fa1d43e50fc, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30

Thread 4 (Thread 0x7fa1cddff700 (LWP 4121)):
#0 0x00007fa1dff1f23a in __waitpid (pid=4122, stat_loc=0x7fa1d43e50fc, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30
#1 0x00005582a240b5f0 in ()
#2 0x00005582a24647ce in ()
#3 0x00005582a23807e3 in ()
#4 0x00007fa1dff1f890 in () at /lib/x86_64-linux-gnu/libpthread.so.0
#5 0x00007fa1df99b98d in __GI___libc_free (mem=0xffffffffffffff40) at malloc.c:3103
#6 0x00007fa1d7241272 in TIFFRGBAImageEnd () at /usr/lib/x86_64-linux-gnu/libtiff.so.5
#7 0x00007fa1dc454973 in () at /usr/lib/libgdiplus.so.0
#8 0x00007fa1dc434f48 in GdipLoadImageFromFile () at /usr/lib/libgdiplus.so.0
#9 0x00007fa1dc421899 in GdipCreateBitmapFromFile () at /usr/lib/libgdiplus.so.0
#10 0x000000004185d0c6 in ()
#11 0x00007fa1df1a9068 in ()
#12 0x00007fa1df1adec8 in ()
#13 0x00007fa1df1afee0 in ()
#14 0x00007fa1df1a69f0 in ()
#15 0x00007fa1df1a69f0 in ()
#16 0x00007fa1c80044a0 in ()
#17 0x0000000000000000 in ()

Thread 3 (Thread 0x7fa1df625700 (LWP 4114)):
#0 0x00007fa1dff1d6d6 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, expected=0, futex_word=0x5582a28ef640) at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1 0x00007fa1dff1d6d6 in do_futex_wait (sem=sem@entry=0x5582a28ef640, abstime=0x0) at sem_waitcommon.c:111
#2 0x00007fa1dff1d7c8 in __new_sem_wait_slow (sem=0x5582a28ef640, abstime=0x0) at sem_waitcommon.c:181
#3 0x00005582a2527dc9 in ()
#4 0x00005582a2505be1 in ()
#5 0x00005582a25c514a in ()
#6 0x00007fa1dff146db in start_thread (arg=0x7fa1df625700) at pthread_create.c:463
#7 0x00007fa1dfa2588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fa1defff700 (LWP 4113)):
#0 0x00007fa1dff1a9f3 in futex_wait_cancelable (private=, expected=0, futex_word=0x5582a28fea08) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007fa1dff1a9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x5582a28fea20, cond=0x5582a28fe9e0) at pthread_cond_wait.c:502
#2 0x00007fa1dff1a9f3 in __pthread_cond_wait (cond=0x5582a28fe9e0, mutex=0x5582a28fea20) at pthread_cond_wait.c:655
#3 0x00005582a2593863 in ()
#4 0x00007fa1dff146db in start_thread (arg=0x7fa1defff700) at pthread_create.c:463
#5 0x00007fa1dfa2588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fa1e0ad5780 (LWP 4112)):
#0 0x00007fa1dfa18bf9 in _GI___poll (fds=0x7fa1df1b2f48, nfds=2, timeout=15) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x0000000041821976 in ()
#2 0x0000000000000002 in ()
#3 0x00007ffdc04b25b0 in ()
#4 0x00007fa1df1b2f28 in ()
#5 0x00007fa1e0948220 in ()
#6 0x0000000000000002 in ()
#7 0x00007ffdc04b31d0 in ()
#8 0x00005582a3e27440 in ()
#9 0x00007ffdc04b25b0 in ()
#10 0x00007ffdc04b25b0 in ()
#11 0x00007ffdc04b1b00 in ()
#12 0x00007fa1df1b2f48 in ()
#13 0x00007ffdc04b0001 in ()
#14 0x00007ffdc04b25b0 in ()
#15 0x00000000418207f0 in ()
#16 0x00007fa1df0ebbe8 in ()
#17 0x00007ffdc04b25b0 in ()
#18 0x00007fa1ce5d1870 in ()
#19 0x00007fa1ce5c8130 in ()
#20 0x00007fa1ce5d1870 in ()
#21 0x00007fa1dce2e90b in System_Threading_Monitor_Enter_object_bool
() at /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so
#22 0x0000000041801dc4 in ()
#23 0x0000558200000006 in ()
#24 0x000000000000175f in ()
#25 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.

@mcovington
Copy link
Author

Below is a very short program that reproduces the problem, whether compiled under Windows or with

mcs test.cs -r:System.Windows.Forms

You will also need the large TIFF file that reproduces the problem, which can be downloaded from http://www.covingtoninnovations.com/michael/blog/1911/20190924-NAmerica-10x2m-fullres.tif

using System;
using System.Windows.Forms;
namespace test
{
class test
{
[STAThread]
static void Main(string[] args)
{
var ofd = new OpenFileDialog();
ofd.Title = "Browse to a folder containing a 32-bit TIF file";
ofd.ShowDialog();
Console.WriteLine("You chose: " + ofd.FileName);
}
}
}

@marek-safar
Copy link
Member

Mono 4.6 is very old please try with newer version

@mcovington
Copy link
Author

I'm on it. I'm startled, because I had just done a "sudo apt install mono-complete", or so I thought. Wrong repositories, maybe. More news shortly.

@mcovington
Copy link
Author

THANK YOU! I set up repositories as described at https://www.mono-project.com/download/stable/#download-lin, updated, and got major updates to mono, and the problem went away. PROBLEM SOLVED.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants