Bug#702503: blender 2.66a-1 crashes at launch, when looking for locales dir
Antonio Ospite
ospite at studenti.unina.it
Thu Mar 7 14:06:33 UTC 2013
Package: blender
Version: 2.66a-1
Severity: important
Tags: upstream
Dear Maintainer,
blender-2.66a-1 from experimental crashes here, this is the backtrace:
-----------------------------------------------------------------------
(gdb) run
Starting program: /usr/bin/blender
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe5e32700 (LWP 30189)]
Color management: using fallback mode for management
connect failed: No such file or directory
Program received signal SIGSEGV, Segmentation fault.
memchr () at ../sysdeps/x86_64/memchr.S:33
33 ../sysdeps/x86_64/memchr.S: File o directory non esistente.
(gdb) bt full
#0 memchr () at ../sysdeps/x86_64/memchr.S:33
No locals.
#1 0x0000000000f0b02e in BLI_strnlen (str=str at entry=0x0, maxlen=maxlen at entry=1024)
at /tmp/buildd/blender-2.66a/source/blender/blenlib/intern/string.c:436
end = <optimized out>
#2 0x0000000000f03ba6 in BLI_join_dirfile (dst=dst at entry=0x0, maxlen=maxlen at entry=1024, dir=dir at entry=0x0,
file=file at entry=0x17f34c8 "languages") at /tmp/buildd/blender-2.66a/source/blender/blenlib/intern/path_util.c:1521
dirlen = <optimized out>
#3 0x000000000132e312 in fill_locales () at /tmp/buildd/blender-2.66a/source/blender/blenfont/intern/blf_lang.c:88
lines = 0x0
line = <optimized out>
str = <optimized out>
idx = 0
languages_path = 0x0
#4 BLF_lang_init () at /tmp/buildd/blender-2.66a/source/blender/blenfont/intern/blf_lang.c:192
messagepath = <optimized out>
__func__ = "BLF_lang_init"
#5 0x00000000008bbe6d in WM_init (C=C at entry=0x2984c78, argc=argc at entry=1, argv=argv at entry=0x7fffffffe038)
at /tmp/buildd/blender-2.66a/source/blender/windowmanager/intern/wm_init_exit.c:156
No locals.
#6 0x00000000008a537f in main (argc=1, argv=0x7fffffffe038) at /tmp/buildd/blender-2.66a/source/creator/creator.c:1548
C = 0x2984c78
syshandle = 0x298cba0
ba = 0x298cc18
(gdb)
-----------------------------------------------------------------------
A strace capture shows what the program was doing before crashing:
-----------------------------------------------------------------------
....
stat("/home/ao2/.config/blender/2.66/datafiles/locale", 0x7fff6f95bac0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/2.66/datafiles/locale", 0x7fff6f95bad0) = -1 ENOENT (No such file or directory)
stat("/home/ao2/Proj/debian/Src/blender/release/datafiles/locale", 0x7fff6f95b2b0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/release/datafiles/locale", 0x7fff6f95b2b0) = -1 ENOENT (No such file or directory)
stat("/usr/share/blender/2.66/datafiles/locale", 0x7fff6f95b2b0) = -1 ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
-----------------------------------------------------------------------
We have to fix fill_locales(), which still thinks the locale files are in
BLENDER_SYSTEM_DATAFILES.
I have an experimental patch which fixes the crash, I am going to post it as
a follow up mail, so I can use use the report number in it.
BTW, I think that blender should fail gracefully when it does not find
a directory or a file, it should not crash, maybe something like this can be
upstreamed:
-----------------------------------------------------------------------
diff --git a/source/blender/blenfont/intern/blf_lang.c b/source/blender/blenfont/intern/blf_lang.c
index 73294f1..23dd3d5 100644
--- a/source/blender/blenfont/intern/blf_lang.c
+++ b/source/blender/blenfont/intern/blf_lang.c
@@ -76,16 +76,16 @@ static void free_locales(void)
num_locales = num_locales_menu = 0;
}
-static void fill_locales(void)
+static void fill_locales(char *locale_path)
{
- char *languages_path = BLI_get_folder(BLENDER_DATAFILES, "locale");
+ char *languages_path = locale_path;
LinkNode *lines = NULL, *line;
char *str;
int idx = 0;
free_locales();
- BLI_join_dirfile(languages_path, FILE_MAX, languages_path, "languages");
+ BLI_join_dirfile(languages_path, FILE_MAX, locale_path, "languages");
line = lines = BLI_file_read_as_lines(languages_path);
/* This whole "parsing" code is a bit weak, in that it expects strictly formated input file...
@@ -189,7 +189,7 @@ void BLF_lang_init(void)
if (messagepath) {
bl_locale_init(messagepath, TEXT_DOMAIN_NAME);
- fill_locales();
+ fill_locales(messagepath);
}
else {
printf("%s: 'locale' data path for translations not found, continuing\n", __func__);
-----------------------------------------------------------------------
This would avoid a possible crash even for the pristine code as fill_locales()
is called only when messagepath has been found.
But I have no time to properly test it and upstream it for now.
Thanks,
Antonio
-- System Information:
Debian Release: 7.0
APT prefers unstable
APT policy: (900, 'unstable'), (600, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.8-trunk-amd64 (SMP w/1 CPU core)
Locale: LANG=it_IT.utf8, LC_CTYPE=it_IT.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages blender depends on:
ii fonts-droid 20111207+git-1
ii libavcodec54 6:9.3-1
ii libavdevice53 6:9.3-1
ii libavformat54 6:9.3-1
ii libavutil52 6:9.3-1
ii libboost-date-time1.49.0 1.49.0-3.2
ii libboost-filesystem1.49.0 1.49.0-3.2
ii libboost-locale1.49.0 1.49.0-3.2
ii libboost-regex1.49.0 1.49.0-3.2
ii libboost-system1.49.0 1.49.0-3.2
ii libboost-thread1.49.0 1.49.0-3.2
ii libc6 2.13-38
ii libfftw3-3 3.3.2-3.1
ii libfontconfig1 2.9.0-7.1
ii libfreetype6 2.4.9-1.1
ii libgcc1 1:4.7.2-5
ii libgl1-mesa-glx [libgl1] 8.0.5-3
ii libglew1.7 1.7.0-3
ii libglu1-mesa [libglu1] 8.0.5-3
ii libgomp1 4.7.2-5
ii libilmbase6 1.0.1-6
ii libjack0 [libjack-0.116] 1:0.121.3+20120418git75e3e20b-2.1
ii libjpeg8 8d-1
ii libjs-jquery 1.7.2+dfsg-1
ii libopenal1 1:1.14-4
ii libopenexr6 1.6.1-7
ii libopenimageio1.1 1.1.3+dfsg0-1
ii libopenjpeg2 1.3+dfsg-4.6
ii libpng12-0 1.2.49-3
ii libpython3.3 3.3.0-12
ii libsdl-1.3-0 1.3.0~20111204-1
ii libsndfile1 1.0.25-5
ii libspnav0 0.2.2-1
ii libstdc++6 4.7.2-5
ii libswscale2 6:9.3-1
ii libtiff4 3.9.6-11
ii libx11-6 2:1.5.0-1
ii libxi6 2:1.6.1-1
ii python3 3.3.0-2
ii python3.3 3.3.0-12
ii zlib1g 1:1.2.7.dfsg-13
blender recommends no packages.
Versions of packages blender suggests:
pn yafaray-exporter <none>
-- no debconf information
More information about the pkg-multimedia-maintainers
mailing list