• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: VWR-14301
Type: Bug Bug
Status: Open Open
Priority: Critical Critical
Assignee: Unassigned
Reporter: Morgaine Dinova
Votes: 3
Watchers: 5
Operations

If you were logged in you would be able to see more operations.
1. Second Life Viewer - VWR

Viewer crashes immediately on changing screen mode (Linux)

Created: 20/Jun/09 08:43 AM   Updated: 31/Aug/09 10:54 PM
Return to search
Component/s: Crashes, Graphics, User Interface
Affects Version/s: Snowglobe test build, Snowglobe 1.0, 1.23 Release Candidate, 1.23
Fix Version/s: None

File Attachments: 1. Text File backtrace_boroondas.txt (21 kB)
2. Text File stack_trace.log (2 kB)

Environment:
Snowglobe 1.0.0 (2435) Jun 18 2009 00:25:30 (Snowglobe Release)
Release Notes

Built with GCC version 40102

You are at 238577.1, 244743.4, 26.6 in Hippotropolis located at sim4669.agni.lindenlab.com (216.82.55.65:13001)
Second Life Server 1.26.4.120562
Release Notes

CPU: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz
Memory: 2024 MB
OS Version: Linux 2.6.29-gentoo-r1 #1 SMP PREEMPT Fri Apr 10 20:58:46 BST 2009 i686
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: GeForce 9800 GT/PCI/SSE2
OpenGL Version: 3.0.0 NVIDIA 180.29

libcurl Version: libcurl/7.16.4 OpenSSL/0.9.7c zlib/1.2.3 c-ares/1.4.0
J2C Decoder Version: KDU
Audio Driver Version: OpenAL, version 1.1 / OpenAL Community / OpenAL Soft: ALSA Software on default
LLMozLib Version: [LLMediaImplLLMozLib] - 2.01.24743 (Mozilla GRE version 1.8.1.18_0000000000)
Issue Links:
Relates

Last Triaged: 07/Jul/09 09:19 AM
Linden Lab Issue ID: DEV-35022


 Description  « Hide
  • Run viewer on a Linux system.
  • Either press Alt-Enter or select View->Toggle Fullscreen from menus.
  • Observed: instant crash, 100% reproducible (tested on 32-bit Gentoo Linux in windowed mode).
  • Expected: change from windowed mode to fullscreen mode without crashing.

Further notes:

  • This was first found with Snowglobe 1.0.0 (2435) as part of UI Smoke Tests @ https://jira.secondlife.com/browse/SNOW-36 .
  • Subsequent control tests showed exactly the same problem in these viewers:
    Snowglobe 1.0.2 (2451) Linux
    Second Life Viewer 1.23.4 final (123908) Linux
  • The following viewer does NOT suffer this bug:
    Second Life viewer 1.22.11 final (113941) Linux
  • Repeated tests almost never produced a stack trace on crash. However, one occurrence did generate one, albeit on Snowglobe 1.0.2, as follows:

======================================================
0 com.secondlife.indra.viewer 0x99c0ff3 do_elfio_glibc_backtrace() + 259
1 com.secondlife.indra.viewer 0x80d93a3 LLAppViewer::handleSyncViewerCrash() + 19
2 com.secondlife.indra.viewer 0x9ee0356 LLApp::setError() + 22
3 com.secondlife.indra.viewer 0x9ee0f3a default_unix_signal_handler(int, siginfo*, void*) + 266
4 unknown 0xb7f9b40c [0xb7f9b40c]
5 unknown 0xb6874f42 /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6(_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base+0x12) [0xb6874f42]
6 unknown 0xb6874f9d /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6(_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base+0x1d) [0xb6874f9d]
7 com.secondlife.indra.viewer 0x90f0c12 LLSpatialGroup::destroyGL() + 1634
8 com.secondlife.indra.viewer 0x90f8eb6 LLOctreeDirty::visit(LLOctreeNode<LLDrawable> const*) + 38
9 com.secondlife.indra.viewer 0x824aa9d LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*) + 29
10 com.secondlife.indra.viewer 0x824aab5 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*) + 53
11 com.secondlife.indra.viewer 0x824aab5 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*) + 53
12 com.secondlife.indra.viewer 0x824aab5 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*) + 53
13 com.secondlife.indra.viewer 0x824aab5 LLOctreeTraveler<LLDrawable>::traverse(LLTreeNode<LLDrawable> const*) + 53
14 com.secondlife.indra.viewer 0x90defd2 LLSpatialPartition::resetVertexBuffers() + 34
15 com.secondlife.indra.viewer 0x99912cb LLPipeline::resetVertexBuffers() + 171
16 com.secondlife.indra.viewer 0x966e7b3 LLViewerShaderMgr::setShaders() + 211
17 com.secondlife.indra.viewer 0x998a8be LLPipeline::restoreGL() + 270
18 com.secondlife.indra.viewer 0x96d1191 LLViewerWindow::restoreGL(std::string const&) + 145
19 com.secondlife.indra.viewer 0x96da029 LLViewerWindow::changeDisplaySettings(int, LLCoordScreen, int, int) + 841
20 com.secondlife.indra.viewer 0x96db20c LLViewerWindow::checkSettings() + 1084
21 com.secondlife.indra.viewer 0x941df0c display(int, float, int, int) + 524
22 com.secondlife.indra.viewer 0x81042fe LLAppViewer::mainLoop() + 2782
23 com.secondlife.indra.viewer 0x99beed8 main + 424
24 unknown 0xb66c660c /lib/libc.so.6(__libc_start_main+0xdc) [0xb66c660c]
25 com.secondlife.indra.viewer 0x806fef1 __gxx_personality_v0@@CXXABI_1.3 + 625



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Morgaine Dinova added a comment - 20/Jun/09 09:05 AM - edited
  • Previous title incorrectly referred to screen resolution instead of mode.
  • Now also added "(Linux)" rider to title, as there is no crash reported in Windows or Mac.

Rob Linden added a comment - 20/Jun/09 09:55 PM
I'll solicit some repros on this one on the mailing list. I'm not seeing the same problem on my Linux machine:

Snowglobe 1.0.2 (2451) Jun 19 2009 19:37:16 (Snowglobe Release)
OS Version: Linux 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:58:03 UTC 2009 x86_64
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: GeForce 8600M GT/PCI/SSE2
OpenGL Version: 3.0.0 NVIDIA 180.44

What I am seeing is a repro for SNOW-14 . So, fullscreen is a little messed up, but ymmv on exactly how its messed up.


Rob Linden added a comment - 20/Jun/09 09:56 PM
Putting as Snowglobe 1.0 for now. I don't think we'd hold up the release for this, but I'm not going to make that call just yet.

Morgaine Dinova added a comment - 21/Jun/09 05:24 AM
The key fact about this 100% repro for me is that 1.22.11 doesn't suffer it.

What makes 1.22.11 immune?

Also, there is a 100% correlation for me between this crash and the crash on UI Size slider change: 1.23.4, Snowglobe 1.0.0 and Snowglobe 1.0.2 all crash while 1.22.11 works fine. What does UI Size slider change have in common with switching to Fullscreen?


FoxSan Yosuke added a comment - 21/Jun/09 07:46 AM
I have followed the repro and I did not experience a crash on the following platform and viewer:

--------------------------------------------------

Snowglobe 1.0.1 (2446) Jun 19 2009 02:26:09 (Snowglobe Release)

Built with MSVC version 1400

You are at 235564.0, 319522.4, 182.6 in Snow Valley Canyon located at sim7566.agni.lindenlab.com (216.82.35.59:13007)
Second Life Server 1.26.4.120562

CPU: Intel Pentium III/Pentium III Xeon (0.25 micron process) with external L2 cache (3005 MHz)
Memory: 4095 MB
OS Version: Microsoft Windows Vista Service Pack 1 (Build 6001)
Graphics Card Vendor: NVIDIA Corporation
Graphics Card: GeForce 9600 GT/PCI/SSE2
Windows Graphics Driver Version: 7.15.0011.8250
OpenGL Version: 3.0.0

libcurl Version: libcurl/7.18.1 OpenSSL/0.9.8j zlib/1.2.3
J2C Decoder Version: KDU
Audio Driver Version: FMOD version 3.750000
LLMozLib Version: [LLMediaImplLLMozLib] - 2.01.24808 (Mozilla GRE version 1.8.1.21_0000000000)
Packets Lost: 108/268847 (0.0%)

Screen settings: 1920 x 1200 @ 32Bits

--------------------------------------------------

One remark tho, which is the horrid screen resolution when in Full Screen. I wonder if it is even useful.


Morgaine Dinova added a comment - 21/Jun/09 08:58 AM
> I have followed the repro and I did not experience a crash on the following platform and viewer:

The first line of the repro was "Run viewer on a Linux system", so you didn't follow it.

Rob did though, and he had no problem on Ubuntu. I'll try to narrow the problem down to syscalls.


Morgaine Dinova added a comment - 21/Jun/09 09:08 AM - edited
Log leading up the crash (1.0.2):
2009-06-21T13:06:01Z INFO: changeDisplaySettings: Stopping GL during changeDisplaySettings
2009-06-21T13:06:01Z INFO: stopGL: Shutting down GL...
2009-06-21T13:06:01Z INFO: stopGL: Remaining allocated texture memory: 0 bytes
2009-06-21T13:06:01Z INFO: switchContext: switchContext, fullscreen=1
2009-06-21T13:06:01Z INFO: destroyContext: destroyContext begins
2009-06-21T13:06:01Z INFO: destroyContext: shutdownGL begins
2009-06-21T13:06:01Z INFO: destroyContext: SDL_QuitSS/VID begins
2009-06-21T13:06:01Z INFO: createContext: createContext, fullscreen=1 size=1920x1200
2009-06-21T13:06:01Z INFO: createContext: Compiled against SDL 1.2.5
2009-06-21T13:06:01Z INFO: createContext: Running against SDL 1.2.12
2009-06-21T13:06:01Z INFO: createContext: createContext: setting up fullscreen 1920x1200
2009-06-21T13:06:01Z INFO: createContext: Running at 1920x1200x32 @ -1
2009-06-21T13:06:01Z INFO: x11_detect_VRAM_kb: Looking in /var/log/Xorg.0.log for VRAM info...
2009-06-21T13:06:01Z INFO: createContext: X11 log-parser detected 512MB VRAM.
2009-06-21T13:06:01Z INFO: createContext: GL buffer:
2009-06-21T13:06:01Z INFO: createContext: Red Bits 8
2009-06-21T13:06:01Z INFO: createContext: Green Bits 8
2009-06-21T13:06:01Z INFO: createContext: Blue Bits 8
2009-06-21T13:06:01Z INFO: createContext: Alpha Bits 8
2009-06-21T13:06:01Z INFO: createContext: Depth Bits 24
2009-06-21T13:06:01Z INFO: createContext: Stencil Bits 8
2009-06-21T13:06:01Z INFO: initExtensions: initExtensions() checking shell variables to adjust features...
2009-06-21T13:06:01Z INFO: initExtensions: initExtensions() FramebufferObject-related procs...
2009-06-21T13:06:01Z INFO: initExtensions: initExtensions() OcclusionQuery-related procs...
2009-06-21T13:06:01Z INFO: initExtensions: initExtensions() PointParameters-related procs...
2009-06-21T13:06:01Z INFO: initExtensions: initExtensions() VertexShader-related procs...
2009-06-21T13:06:01Z INFO: changeDisplaySettings: Restoring GL during resolution change
2009-06-21T13:06:01Z INFO: restoreGL: Restoring GL...
2009-06-21T13:06:02Z INFO: createFont: createFont SansSerif size Large style 0
2009-06-21T13:06:02Z INFO: createFont: createFont SansSerif size Huge style 0
2009-06-21T13:06:02Z INFO: restoreGL: ...Restoring GL done
2009-06-21T13:06:02Z INFO: calcDisplayScale: Setting display scale to { 1.59375, 1.32833 }
""*** glibc detected *** bin/snowglobe-do-not-run-directly: free(): invalid next size (fast): 0xaf6d2ec8 ***
======= Backtrace: =========

FoxSan Yosuke added a comment - 21/Jun/09 09:14 AM
Only doing my best

Rob:
"I tried this myself on Linux, and did not see it. I've not tried this
on Windows and Mac yet. If everyone could try this regardless of
platform and note your results, that'd be wonderful to know the scope of
the issue."


Morgaine Dinova added a comment - 21/Jun/09 09:56 AM
Of course, and much appreciated. Only pointing out that the Jira was against a fault on Linux.

Morgaine Dinova added a comment - 21/Jun/09 10:09 AM - edited
An strace seems to show that the crash happens while GL is loading a Snowglobe font, or just after:
==================
17:41:40.213524 ioctl(15, 0xc098464a, 0xbf983770) = 0
17:41:40.213716 ioctl(15, 0xc0384657, 0xbf983650) = 0
17:41:40.219871 munmap(0xb1153000, 55108) = 0
17:41:40.220021 open("/var/SecondLife/Snowglobe/releases/Snowglobe-i686-1.0.2.2451/fonts/MtBkLfRg.ttf", O_RDONLY) = 50
17:41:40.220104 fcntl64(50, F_SETFD, FD_CLOEXEC) = 0
17:41:40.220141 fstat64(50, {st_mode=S_IFREG|0644, st_size=55108, ...}) = 0
17:41:40.220212 mmap2(NULL, 55108, PROT_READ, MAP_PRIVATE, 50, 0) = 0xb2f20000
17:41:40.220337 close(50) = 0
17:41:40.220545 munmap(0xb10d2000, 528384) = 0
17:41:40.223734 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb227b000
17:41:40.225170 ioctl(15, 0xc098464a, 0xbf983770) = 0
17:41:40.225326 ioctl(15, 0xc0384657, 0xbf983650) = 0
17:41:40.225943 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb1c96000
17:41:40.227093 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb16cd000
17:41:40.228642 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb10e0000
17:41:40.229632 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb105f000
17:41:40.231369 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb0951000
17:41:40.232416 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb035c000
17:41:40.234146 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb02db000
17:41:40.235283 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacf28000
17:41:40.236679 ioctl(15, 0xc098464a, 0xbf983770) = 0
17:41:40.240300 ioctl(15, 0xc0384657, 0xbf983650) = 0
17:41:40.240979 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacb7f000
17:41:40.241975 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xaa37e000
17:41:40.243602 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa7d7f000
17:41:40.244615 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa6a78000
17:41:40.246356 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa627c000
17:41:40.247370 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa61fb000
17:41:40.248886 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa617a000
17:41:40.249942 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa60f9000
17:41:40.251321 ioctl(15, 0xc098464a, 0xbf983770) = 0
17:41:40.251470 ioctl(15, 0xc0384657, 0xbf983650) = 0
17:41:40.252052 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa6078000
17:41:40.253138 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa5a7d000
17:41:40.254778 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa567d000
17:41:40.255834 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa527f000
17:41:40.258389 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa51fe000
17:41:40.259396 mmap2(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xa517d000
17:41:40.260750 ioctl(15, 0xc098464a, 0xbf983770) = 0
17:41:40.260912 ioctl(15, 0xc0384657, 0xbf983650) = 0
17:41:40.263158 — SIGSEGV (Segmentation fault) @ 0 (0) ---
17:41:40.263252 time(NULL) = 1245602500
17:41:40.263305 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3661, ...}) = 0
17:41:40.263395 write(2, "2009-06-21T16:41:40Z INFO: do_elf"..., 124) = 124
17:41:40.263489 write(3, "2009-06-21T16:41:40Z INFO: do_elf"..., 124) = 124
==================
The last two lines of strace correspond to this tail end of the logfile:

2009-06-21T16:41:39Z INFO: changeDisplaySettings: Restoring GL during resolution change
2009-06-21T16:41:39Z INFO: restoreGL: Restoring GL...
2009-06-21T16:41:40Z INFO: do_elfio_glibc_backtrace: Opening stack trace file /home/sluser/.secondlife/logs/stack_trace.log
2009-06-21T16:41:43Z INFO: do_elfio_glibc_backtrace: Finished generating stack trace.
==================
That font file is identical in 1.22.11 and Snowglobe 1.0.* releases, so unfortunately the cause of the SIGSEGV isn't immediately obvious. I'll strace 1.22.11 too and look for differences.


Morgaine Dinova added a comment - 21/Jun/09 07:24 PM - edited
I'm guessing at a lot of this, but judging by the straces, it seems that there is a significant difference in the memory management model employed by 1.22.11 versus that used in 1.23.4 and in the Snowglobes, in the area of the font loader. 1.22.11 used munmap(2) to totally delete old memory mappings, while the newer viewers use mmap2(2) with MAP_ANONYMOUS to set the old contents to zero followed by some ioctls. It's one of these new ioctls that is crashing with SIGSEGV on my Linux box.

For comparison with the Snowglobe 1.0.2 data in the previous post, here is the corresponding section of strace for 1.22.11 plus its related snippet of log. It shows the same fonts/MtBkLfRg.ttf being loaded (successfully, instead of crashing), and then continuing to load other fonts.

=======================
strace:
21:20:48.463892 open("/var/SecondLife/SecondLife/releases/SecondLife-i686-1.22.11.113941/fonts/MtBkLfRg.ttf", O_RDONLY) = 54
21:20:48.463957 fcntl64(54, F_SETFD, FD_CLOEXEC) = 0
21:20:48.463993 fstat64(54, {st_mode=S_IFREG|0600, st_size=55108, ...}) = 0
21:20:48.464058 mmap2(NULL, 55108, PROT_READ, MAP_PRIVATE, 54, 0) = 0xb108c000
21:20:48.464097 close(54) = 0
21:20:48.465800 time(NULL) = 1245615648
21:20:48.465870 stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3661, ...}) = 0
21:20:48.465955 write(2, "2009-06-21T20:20:48Z INFO: resetB"..., 68) = 68
21:20:48.466055 write(3, "2009-06-21T20:20:48Z INFO: resetB"..., 68) = 68
21:20:48.466126 gettimeofday({1245615648, 466142}, NULL) = 0
21:20:48.467392 munmap(0xb0e8a000, 4900) = 0
21:20:48.467466 munmap(0xb0e86000, 15383) = 0
21:20:48.467528 munmap(0xb0e70000, 88732) = 0
21:20:48.467593 munmap(0xb0e5e000, 70121) = 0
21:20:48.467664 munmap(0xb0e1a000, 275572) = 0
21:20:48.467731 munmap(0xb0dfd000, 117028) = 0
21:20:48.467795 munmap(0xb0dde000, 126796) = 0
21:20:48.467855 munmap(0xb0d53000, 568896) = 0
21:20:48.467917 munmap(0xb0be8000, 1483772) = 0
21:20:48.467980 munmap(0xb0bdf000, 33709) = 0
21:20:48.468035 munmap(0xb0b6c000, 467208) = 0
21:20:48.468100 munmap(0xb0b4d000, 126064) = 0
21:20:48.468163 munmap(0xb0b03000, 302688) = 0
21:20:48.468218 munmap(0xb0ab6000, 314348) = 0
21:20:48.468280 open("/var/SecondLife/SecondLife/releases/SecondLife-i686-1.22.11.113941/fonts//usr/share/fonts/100dpi/UTRG__10-ISO8859-1.pcf.gz", O_RDONLY) = -1 ENOENT (No such file or directory)
21:20:48.468366 open("/usr/share/fonts/100dpi/UTRG__10-ISO8859-1.pcf.gz", O_RDONLY) = 54
21:20:48.468424 fcntl64(54, F_SETFD, FD_CLOEXEC) = 0
21:20:48.468460 fstat64(54, {st_mode=S_IFREG|0644, st_size=4900, ...}) = 0
21:20:48.468524 mmap2(NULL, 4900, PROT_READ, MAP_PRIVATE, 54, 0) = 0xb108a000
21:20:48.468563 close(54) = 0
=======================
log:
2009-06-21T20:20:47Z INFO: changeDisplaySettings: Stopping GL during changeDisplaySettings
2009-06-21T20:20:47Z INFO: stopGL: Shutting down GL...
2009-06-21T20:20:47Z INFO: stopGL: Remaining allocated texture memory: 0 bytes
2009-06-21T20:20:47Z INFO: switchContext: switchContext, fullscreen=1
2009-06-21T20:20:47Z INFO: destroyContext: destroyContext begins
2009-06-21T20:20:47Z INFO: destroyContext: shutdownGL begins
2009-06-21T20:20:47Z INFO: destroyContext: SDL_QuitSS/VID begins
2009-06-21T20:20:47Z INFO: createContext: createContext, fullscreen=1 size=1920x1200
2009-06-21T20:20:47Z INFO: createContext: Compiled against SDL 1.2.5
2009-06-21T20:20:47Z INFO: createContext: Running against SDL 1.2.12
2009-06-21T20:20:47Z INFO: createContext: createContext: setting up fullscreen 1920x1200
2009-06-21T20:20:47Z INFO: createContext: Running at 1920x1200x32 @ -1
2009-06-21T20:20:47Z INFO: x11_detect_VRAM_kb: Looking in /var/log/Xorg.0.log for VRAM info...
2009-06-21T20:20:47Z INFO: createContext: X11 log-parser detected 512MB VRAM.
2009-06-21T20:20:47Z INFO: createContext: GL buffer:
2009-06-21T20:20:47Z INFO: createContext: Red Bits 8
2009-06-21T20:20:47Z INFO: createContext: Green Bits 8
2009-06-21T20:20:47Z INFO: createContext: Blue Bits 8
2009-06-21T20:20:47Z INFO: createContext: Alpha Bits 8
2009-06-21T20:20:47Z INFO: createContext: Depth Bits 24
2009-06-21T20:20:47Z INFO: createContext: Stencil Bits 8
2009-06-21T20:20:47Z INFO: changeDisplaySettings: Restoring GL during resolution change
2009-06-21T20:20:47Z INFO: restoreGL: Restoring GL...
2009-06-21T20:20:48Z INFO: resetBitmap: Rebuilding bitmap for glyph
2009-06-21T20:20:48Z INFO: resetBitmap: Rebuilding bitmap for glyph
=======================

Unfortunately, GL reloads the X11 server's entire font list when the screen mode changes, including any number of system fonts (31 of them in my case). Each machine's font setup is very likely to be different, and hence font memory usage will be too. As a result, I'm not too surprised that Rob's Linux machine behaved differently to mine.

This is looking a bit hard to diagnose. I'd like to hear from the viewer experts.

PS. Note that the second open(2) call above seems to have concatenated two paths together incorrectly, and of course has found no font file there. That looks like a program bug, although unfortunately it's in the viewer that does NOT crash here.


Boroondas Gupte added a comment - 22/Jun/09 12:19 PM
Reproduced on gentoo linux with
Snowglobe 1.0.1 (2446) Jun 19 2009 02:45:20 (Snowglobe Release)
Release Notes

Built with GCC version 40102

CPU: Intel(R) Pentium(R) M processor 1.80GHz
Memory: 882 MB
OS Version: Linux 2.6.28-gentoo-r5-ati-fb #5 PREEMPT Sun May 3 12:57:44 CEST 2009 i686
Graphics Card Vendor: ATI Technologies Inc.
Graphics Card: ATI MOBILITY RADEON 9600/9700 Series
OpenGL Version: 2.1.8543 Release

libcurl Version: libcurl/7.16.4 OpenSSL/0.9.7c zlib/1.2.3 c-ares/1.4.0
J2C Decoder Version: KDU
Audio Driver Version: OpenAL, version 1.1 / OpenAL Community / OpenAL Soft: ALSA Software on default
LLMozLib Version: [LLMediaImplLLMozLib] - 2.01.24837 (Mozilla GRE version 1.8.1.18_0000000000)

Maybe this is gentoo specific? Attaching backtrace.


Aimee Trescothick added a comment - 22/Jun/09 04:55 PM
Moved to VWR at Morgaine's request as it affects the 1.23 release viewer as well as SnowGlobe.

Morgaine Dinova added a comment - 26/Jun/09 07:24 PM - edited
Indeed Boroondas, it might be Gentoo-specific. But I think the first step towards identifying the cause (and whether it is Gentoo-specific) is to discover why the font handling differs so dramatically between 1.22.11 and the later viewers (ie. using completely different system calls as shown above), because that correlates directly with the observed crash behaviour.

What's changed in font handling since 1.22.11? If we knew that, it could lead us to the culprit, since 1.22.11 does not crash.

Post script: Merov says that viewers later than 1.22.11 use unicode, which is probably very relevant to this issue.


Armin Weatherwax added a comment - 29/Jun/09 10:14 AM
I tried with Snowglobe 1.0.2 on Debian Lenny and got an impressing crash with squares flickering all over the screen, ctrl-alt-backspace needed.
Then I tried 1.23.4 and got no crash.
Because the log of the first try was not readable (because of trying on my local opensim and snow-66) I retried with Snowglobe in the betagrid and got this time no crash, retried again on my opensim and got no crash.


CPU: Intel(R) Core(TM) Duo CPU T2450 @ 2.00GHz
Memory: 1899 MB
OS Version: Linux 2.6.29.3 #1 SMP Fri May 15 17:03:02 CEST 2009 i686
Graphics Card Vendor: ATI Technologies Inc.
Graphics Card: ATI Radeon Xpress Series
OpenGL Version: 2.1.8543 Release

libcurl Version: libcurl/7.16.4 OpenSSL/0.9.7c zlib/1.2.3.3 c-ares/1.4.0
J2C Decoder Version: KDU


Dzonatas Sol added a comment - 03/Jul/09 04:07 PM
Linked to VWR-10131 since that patch on that issue solved some related issues with fonts. Need feedback that it'll help on this issue, too.

Morgaine Dinova added a comment - 06/Jul/09 01:33 PM
This Jira and VWR-14302 (which crashes at the same point) are hard to repro unless you have the same or similar fonts configured in X11 as those who suffer it, which seems common on Gentoo but may be hard to achieve on other distros. I'll try to supply further information on the font environment below, shortly.

Feel free to IM me for more in-depth testing or diagnosis. I'll compile up an instrumentation patch if you have one and want more feedback. (All viewers later than 1.22.11 seem to fail in the same way, including 1.23.4 and all Snowglobe builds, both LL-built and self-built.)


Armin Weatherwax added a comment - 06/Jul/09 06:14 PM
I couldn't reproduce the crash I described above, so I assume it was just a coincidence and different from Morgaines (most likely one of the many clients I used the same day poisoned my cache or so).

kebblin thor added a comment - 17/Jul/09 03:59 AM
This problem occurs on Mandriva 2009.1 x86_64 as well. SecondLife-i686-1.22.11.113941 is fine, but SecondLife-i686-1.23.4.123908 crashes when switching to full screen.

Is the a patch for SecondLife-i686-1.23.4.123908 ?

I have experienced this on two different machines.


kebblin thor added a comment - 28/Jul/09 01:12 AM
Stack trace when running Snowglobe-i686-1.0.3.2537 and trying to change resolutions.

kebblin thor added a comment - 31/Aug/09 10:54 PM
any progress on resolving this bug? I'd really like to know if something is being done.