Bug 206346 - crash when clicking stop on paused flac song
Summary: crash when clicking stop on paused flac song
Status: RESOLVED DUPLICATE of bug 204454
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-05 12:09 UTC by lsalle
Modified: 2009-09-05 12:12 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description lsalle 2009-09-05 12:09:19 UTC
Application that crashed: amarok
Version of the application: 2.1.1
KDE Version: 4.3.1 (KDE 4.3.1)
Qt Version: 4.5.2
Operating System: Linux 2.6.31-9-server x86_64
Distribution: Ubuntu karmic (development branch)

 -- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
[Current thread is 1 (Thread 0x7f54a0d6f790 (LWP 8159))]

Thread 15 (Thread 0x7f54873b1910 (LWP 8240)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:220
#1  0x00007f548c15cc91 in metronom_sync_loop (this=0x1721b90) at metronom.c:870
#2  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x7f5485832910 (LWP 8337)):
#0  0x00007f549e894203 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=7) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f5497c9028c in g_main_context_poll (context=0x1725a50, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2904
#2  g_main_context_iterate (context=0x1725a50, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2586
#3  0x00007f5497c905d0 in IA__g_main_context_iteration (context=0x1725a50, may_block=1) at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2654
#4  0x00007f549ec9d14e in QEventDispatcherGlib::processEvents (this=0x1725980, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:329
#5  0x00007f549ec73482 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#6  0x00007f549ec73854 in QEventLoop::exec (this=0x7f5485831fc0, flags=) at kernel/qeventloop.cpp:201
#7  0x00007f549eb8b6cb in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#8  0x00007f548c3b750e in Phonon::Xine::XineThread::run (this=0x1725280) at ../../xine/xinethread.cpp:143
#9  0x00007f549eb8e425 in QThreadPrivate::start (arg=0x1725280) at thread/qthread_unix.cpp:188
#10 0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#11 0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7f5485031910 (LWP 8338)):
#0  0x00007f549e894203 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f5486797d3f in poll_func (ufds=0x172cda0, nfds=1, timeout=-1, userdata=0x17294f0) at pulse/thread-mainloop.c:75
#2  0x00007f54867880d9 in pa_mainloop_poll (m=0x17298a0) at pulse/mainloop.c:884
#3  0x00007f54867899b9 in pa_mainloop_iterate (m=0x17298a0, block=<value optimized out>, retval=0x0) at pulse/mainloop.c:950
#4  0x00007f5486789a70 in pa_mainloop_run (m=0x17298a0, retval=0x0) at pulse/mainloop.c:968
#5  0x00007f5486797c5b in thread (userdata=0x1729630) at pulse/thread-mainloop.c:94
#6  0x00007f5486558e60 in internal_thread_func (userdata=0x17299a0) at pulsecore/thread-posix.c:72
#7  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#8  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f548082f910 (LWP 8341)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f548c16d983 in fifo_peek_int (this_gen=<value optimized out>) at audio_out.c:348
#2  fifo_peek (this_gen=<value optimized out>) at audio_out.c:388
#3  ao_loop (this_gen=<value optimized out>) at audio_out.c:1015
#4  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f547fe2b910 (LWP 8343)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f548c16d983 in fifo_peek_int (this_gen=<value optimized out>) at audio_out.c:348
#2  fifo_peek (this_gen=<value optimized out>) at audio_out.c:388
#3  ao_loop (this_gen=<value optimized out>) at audio_out.c:1015
#4  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f547e63b910 (LWP 8415)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f549eb8f4db in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f549bb5d326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1f0d830, th=0x2095040) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f549bb5f45b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x2095040) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f549bb5f474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x2095040) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f549bb5da5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f547e63b010, parent=0x1f0d830, th=0x2095040) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007f549bb5deb8 in ThreadWeaver::Thread::run (this=0x2095040) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f549eb8e425 in QThreadPrivate::start (arg=0x2095040) at thread/qthread_unix.cpp:188
#9  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f5473fff910 (LWP 8416)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f549eb8f4db in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f549bb5d326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1f0d830, th=0x21b3180) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f549bb5f45b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x21b3180) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f549bb5da5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f5473fff010, parent=0x1f0d830, th=0x21b3180) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007f549bb5deb8 in ThreadWeaver::Thread::run (this=0x21b3180) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007f549eb8e425 in QThreadPrivate::start (arg=0x21b3180) at thread/qthread_unix.cpp:188
#8  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f54737fe910 (LWP 8418)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f549eb8f4db in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f549bb5d326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1f0d830, th=0x1fa6bd0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f549bb5f45b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x1fa6bd0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f549bb5da5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f54737fe010, parent=0x1f0d830, th=0x1fa6bd0) at ../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007f549bb5deb8 in ThreadWeaver::Thread::run (this=0x1fa6bd0) at ../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007f549eb8e425 in QThreadPrivate::start (arg=0x1fa6bd0) at thread/qthread_unix.cpp:188
#8  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f5472ffd910 (LWP 8419)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f549eb8f4db in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2094aa0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f549bb5d326 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1f0d830, th=0x1e1d8c0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007f549bb5f45b in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x1e1d8c0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007f549bb5f474 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1f52e60, th=0x1e1d8c0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007f549bb5da5f in ThreadWeaver::ThreadRunHelper::run (this=0x7f5472ffd010, parent=0x1f0d830, th=0x1e1d8c0) at ../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007f549bb5deb8 in ThreadWeaver::Thread::run (this=0x1e1d8c0) at ../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007f549eb8e425 in QThreadPrivate::start (arg=0x1e1d8c0) at thread/qthread_unix.cpp:188
#9  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f546b111910 (LWP 9306)):
#0  0x00007f549e899252 in select () from /lib/libc.so.6
#1  0x00007f548c185725 in xine_usec_sleep (usec=<value optimized out>) at utils.c:481
#2  0x00007f548c16a7e9 in video_out_loop (this_gen=<value optimized out>) at video_out.c:1246
#3  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f546a527910 (LWP 9307)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f548c16054b in fifo_buffer_get (fifo=0x7f54740c0d00) at buffer.c:230
#2  0x00007f548c16651d in video_decoder_loop (stream_gen=<value optimized out>) at video_decoder.c:130
#3  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f5469d26910 (LWP 9308)):
[KCrash Handler]
#5  0x00007f54893d74a7 in bswap_32 (s=0x7f5460002300, channel=<value optimized out>, pred_order=<value optimized out>) at /build/buildd/ffmpeg-0.5+svn20090706/libavutil/x86/bswap.h:42
#6  get_ur_golomb_jpegls (s=0x7f5460002300, channel=<value optimized out>, pred_order=<value optimized out>) at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/golomb.h:287
#7  get_sr_golomb_flac (s=0x7f5460002300, channel=<value optimized out>, pred_order=<value optimized out>) at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/golomb.h:329
#8  decode_residuals (s=0x7f5460002300, channel=<value optimized out>, pred_order=<value optimized out>) at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/flacdec.c:294
#9  0x00007f54893d78b2 in decode_subframe_lpc (s=0x7f5460002300, channel=0, pred_order=29) at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/flacdec.c:381
#10 0x00007f54893d8515 in decode_subframe (avctx=<value optimized out>, data=<value optimized out>, data_size=<value optimized out>, buf=<value optimized out>, buf_size=<value optimized out>)
    at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/flacdec.c:459
#11 decode_frame (avctx=<value optimized out>, data=<value optimized out>, data_size=<value optimized out>, buf=<value optimized out>, buf_size=<value optimized out>)
    at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/flacdec.c:577
#12 flac_decode_frame (avctx=<value optimized out>, data=<value optimized out>, data_size=<value optimized out>, buf=<value optimized out>, buf_size=<value optimized out>)
    at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/flacdec.c:646
#13 0x00007f5489283ac7 in avcodec_decode_audio2 (avctx=0x7f5460032960, samples=0x33, frame_size_ptr=0x1b, buf=0x3e2d <Address 0x3e2d out of bounds>, buf_size=64)
    at /build/buildd/ffmpeg-0.5+svn20090706/libavcodec/utils.c:560
#14 0x00007f5489c09089 in ff_audio_decode_data (this_gen=0x7f546002ea00, buf=0x7f5474651380) at ff_audio_decoder.c:314
#15 0x00007f548c167bf2 in audio_decoder_loop (stream_gen=<value optimized out>) at audio_decoder.c:362
#16 0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#17 0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#18 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f5469525910 (LWP 9311)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f548c170a0b in xine_event_wait (queue=0x7f5474668520) at events.c:56
#2  0x00007f548c170a7e in listener_loop (queue_gen=<value optimized out>) at events.c:214
#3  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#4  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f5465ea2910 (LWP 9930)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f548c160463 in buffer_pool_alloc (this=0x7f54740ae6a0) at buffer.c:90
#2  0x00007f5466179d64 in demux_flac_send_chunk (this_gen=<value optimized out>) at demux_flac.c:310
#3  0x00007f548c175775 in demux_loop (stream_gen=<value optimized out>) at demux.c:324
#4  0x00007f549912ba04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#5  0x00007f549e8a064d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f54a0d6f790 (LWP 8159)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007f549eb8f4db in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1727048, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1727048, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f548c3bc21d in Phonon::Xine::XineStream::closeBlocking (this=0x1726fd0) at ../../xine/xinestream.cpp:1548
#4  0x00007f548c3cffc6 in ~MediaObject (this=0x17251b0, __in_chrg=<value optimized out>) at ../../xine/mediaobject.cpp:109
#5  0x00007f549b6b90b4 in Phonon::MediaNodePrivate::deleteBackendObject (this=0x166c1e0) at ../3rdparty/phonon/phonon/medianode.cpp:81
#6  0x00007f549b6c7cc5 in ~FactoryPrivate (this=0x153b8a0, __in_chrg=<value optimized out>) at ../3rdparty/phonon/phonon/factory.cpp:193
#7  0x00007f549e7f9c12 in __run_exit_handlers (status=1) at exit.c:78
#8  *__GI_exit (status=1) at exit.c:100
#9  0x00007f549f5ee2a8 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:707
#10 0x00007f54a0895798 in KApplication::xioErrhandler (this=0x7ffffa84c360, dpy=0x155d2c0) at ../../kdeui/kernel/kapplication.cpp:408
#11 0x00007f549de50fae in _XIOError () from /usr/lib/libX11.so.6
#12 0x00007f549de589a5 in ?? () from /usr/lib/libX11.so.6
#13 0x00007f549de59257 in _XEventsQueued () from /usr/lib/libX11.so.6
#14 0x00007f549de4201b in XEventsQueued () from /usr/lib/libX11.so.6
#15 0x00007f549f62759c in x11EventSourceCheck (s=0x15331c0) at kernel/qguieventdispatcher_glib.cpp:87
#16 0x00007f5497c8f9ba in IA__g_main_context_check (context=0x153a420, max_priority=2147483647, fds=<value optimized out>, n_fds=-1) at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2469
#17 0x00007f5497c901a0 in g_main_context_iterate (context=0x153a420, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2588
#18 0x00007f5497c905d0 in IA__g_main_context_iteration (context=0x153a420, may_block=1) at /build/buildd/glib2.0-2.21.5/glib/gmain.c:2654
#19 0x00007f549ec9d0f6 in QEventDispatcherGlib::processEvents (this=0x14b7d00, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#20 0x00007f549f6273de in QGuiEventDispatcherGlib::processEvents (this=0x17274cc, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#21 0x00007f549ec73482 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#22 0x00007f549ec73854 in QEventLoop::exec (this=0x7ffffa84c310, flags=) at kernel/qeventloop.cpp:201
#23 0x00007f549ec75a09 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#24 0x0000000000404056 in main (argc=1, argv=0x7ffffa84d548) at /build/buildd/amarok-2.1.1orig/src/main.cpp:128

This bug may be a duplicate of or related to bug 204454

Reported using DrKonqi
Comment 1 Mikko C. 2009-09-05 12:12:14 UTC

*** This bug has been marked as a duplicate of bug 204454 ***