Bug 1466654

Summary: Beepbleed
Product: [Fedora] Fedora Reporter: Harald Hoyer <harald>
Component: gtk3Assignee: Matthias Clasen <mclasen>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: bberg, cosimo.cecchi, debarshir, klember, mclasen, mikhail.v.gavrilov, yaneti
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gtk3-3.22.17-2.fc26 gtk3-3.22.17-2.fc25 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-24 19:22:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Harald Hoyer 2017-06-30 07:31:05 UTC
$ rpm -qf /usr/bin/gnome-terminal 
gnome-terminal-3.24.2-1.fc27.x86_64

This crashes gnome-terminal with the beep sound enabled
$ while true; do echo -ne '\007';done

Comment 1 Yanko Kaneti 2017-06-30 08:07:59 UTC
FWIW , it looks like a vte issue. You can reproduce the same with vte-2.91 --audible-bell

Comment 2 Debarshi Ray 2017-06-30 12:47:58 UTC
How long does it take to crash? Does it also crash in F26?

I tried to reproduce by building the upstream code from https://git.gnome.org/browse/vte/log/?h=vte-0-48 and all I got was bash consuming close to 100% CPU. Same thing with Fedora's downstream patches.

A backtrace will be helpful.

Comment 3 Yanko Kaneti 2017-06-30 12:52:11 UTC
It crashes in a second or two:
Core was generated by `vte-2.91 --audible-bell'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51	}
[Current thread is 1 (Thread 0x7f7b48575f40 (LWP 4962))]
Missing separate debuginfos, use: dnf debuginfo-install libidn2-2.0.2-1.fc27.x86_64 libunistring-0.9.7-1.fc26.x86_64 mesa-libwayland-egl-17.1.3-2.fc27.x86_64 pcre2-10.23-8.fc27.x86_64
(gdb) bt full
#0  0x00007f7b44e09e6b in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
        set = 
            {__val = {0, 94798807449168, 1, 140167414253711, 4222451712, 94798807449168, 94798807449168, 140167413291850, 94798807449168, 128, 140728194693072, 4, 0, 140167431313024, 0, 4}}
        pid = <optimized out>
        tid = <optimized out>
#1  0x00007f7b44e0bbf7 in __GI_abort () at abort.c:90
        save_stage = 2
        act = 
          {__sigaction_handler = {sa_handler = 0x1d60df810, sa_sigaction = 0x1d60df810}, sa_mask = {__val = {140167431307552, 0, 140167455737902, 94798803101136, 47244640258, 0, 0, 140728194693336, 0, 140728194693168, 140167414759040, 21474836480, 15742807583981587968, 0, 94798808421280, 0}}, sa_flags = 285198768, sa_restorer = 0xffc}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007f7b422ccd3f in wl_abort (fmt=fmt@entry=0x7f7b422ccf0e "Error sending request: %s\n") at src/wayland-util.c:419
        argp = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7ffdd60df9f0, reg_save_area = 0x7ffdd60df930}}
#3  0x00007f7b422c8ded in wl_proxy_marshal_array_constructor_versioned (proxy=proxy@entry=0x563810ffc9b0, opcode=opcode@entry=2, args=args@entry=0x7ffdd60dfa90, interface=interface@entry=0x0, version=1) at src/wayland-client.c:659
        closure = 0x5638114d13a0
        new_proxy = 0x0
        message = 0x7f7b478dbef0 <gtk_shell1_requests+48>
#4  0x00007f7b422c8e49 in wl_proxy_marshal_array_constructor (proxy=proxy@entry=0x563810ffc9b0, opcode=opcode@entry=2, args=args@entry=0x7ffdd60dfa90, interface=interface@entry=0x0) at src/wayland-client.c:599
#5  0x00007f7b422c8f3c in wl_proxy_marshal (proxy=0x563810ffc9b0, opcode=2) at src/wayland-client.c:696
        args = 
            {{i = 0, u = 0, f = 0, s = 0x0, o = 0x0, n = 0, a = 0x0, h = 0}, {i = -703726792, u = 3591240504, f = -703726792, s = 0x7ffdd60dfb38 "", o = 0x7ffdd60dfb38, n = 3591240504, a = 0x7ffdd60dfb38, h = -703726792}, {i = 290312833, u = 290312833, f = 290312833, s = 0x5638114dd281 '\a' <repeats 200 times>..., o = 0x5638114dd281, n = 290312833, a = 0x5638114dd281, h = 290312833}, {i = -1299427840, u = 2995539456, f = -1299427840, s = 0xda79b016b28c4e00 <error: Cannot access memory at address 0xda79b016b28c4e00>, o = 0xda79b016b28c4e00, n = 2995539456, a = 0xda79b016b28c4e00, h = -1299427840}, {i = 31, u = 31, f = 31, s = 0x1f <error: Cannot access memory at address 0x1f>, o = 0x1f, n = 31, a = 0x1f, h = 31}, {i = 805349536, u = 805349536, f = 805349536, s = 0x7f7b3000a8a0 "", o = 0x7f7b3000a8a0, n = 805349536, a = 0x7f7b3000a8a0, h = 805349536}, {i = -703726648, u = 3591240648, f = -703726648, s = 0x7ffdd60dfbc8 "", o = 0x7ffdd60dfbc8, n = 3591240648, a = 0x7ffdd60dfbc8, h = -703726648}, {i = -703726784, u = 3591240512, f = -703726784, s = 0x7ffdd60dfb40 "\030", o = 0x7ffdd60dfb40, n = 3591240512, a = 0x7ffdd60dfb40, h = -703726784}, {i = 0, u = 0, f = 0, s = 0x0, o = 0x0, n = 0, a = 0x0, h = 0}, {i = -703726768, u = 3591240528, f = -703726768, s = 0x7ffdd60dfb50 "", o = 0x7ffdd60dfb50, n = 3591240528, a = 0x7ffdd60dfb50, h = -703726768}, {i = -703726792, u = 3591240504, f = -703726792, s = 0x7ffdd60dfb38 "", o = 0x7ffdd60dfb38, n = 3591240504, a = 0x7ffdd60dfb38, h = -703726792}, {i = 1210114736, u = 1210114736, f = 1210114736, s = 0x7f7b4820e2b0 <_vte_conv(VteConv, guchar const**, gsize*, guchar**, gsize*)+544> "A\211D$\374A\017\266E", o = 0x7f7b4820e2b0 <_vte_conv(VteConv, guchar const**, gsize*, guchar**, gsize*)+544>, n = 1210114736, a = 0x7f7b4820e2b0 <_vte_conv(VteConv, guchar const**, gsize*, guchar**, gsize*)+544>, h = 1210114736}, {i = -703726784, u = 3591240512, f = -703726784, s = 0x7ffdd60dfb40 "\030", o = 0x7ffdd60dfb40, n = 3591240512, a = 0x7ffdd60dfb40, h = -703726784}, {i = -1299427840, u = 2995539456, f = -1299427840, s = 0xda79b016b28c4e00 <error: Cannot access memory at address 0xda79b016b28c4e00>, o = 0xda79b016b28c4e00, n = 2995539456, a = 0xda79b016b28c4e00, h = -1299427840}, {i = -703726640, u = 3591240656, f = -703726640, s = 0x7ffdd60dfbd0 "", o = 0x7ffdd60dfbd0, n = 3591240656, a = 0x7ffdd60dfbd0, h = -703726640}, {i = 1022, u = 1022, f = 1022, s = 0x3fe <error: Cannot access memory at address 0x3fe>, o = 0x3fe, n = 1022, a = 0x3fe, h = 1022}, {i = 285290520, u = 285290520, f = 285290520, s = 0x563811013018 "\a", o = 0x563811013018, n = 285290520, a = 0x563811013018, h = 285290520}, {i = 4088, u = 4088, f = 4088, s = 0xff8 <error: Cannot access memory at address 0xff8>, o = 0xff8, n = 4088, a = 0xff8, h = 4088}, {i = 285286432, u = 285286432, f = 285286432, s = 0x563811012020 "\a", o = 0x563811012020, n = 285286432, a = 0x563811012020, h = 285286432}, {i = 1124, u = 1124, f = 1124, s = 0x464 <error: Cannot access memory at address 0x464>, o = 0x464, n = 1124, a = 0x464, h = 1124}}
        ap = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffdd60dfc10, reg_save_area = 0x7ffdd60dfb40}}
#6  0x00007f7b4821a6a9 in vte_sequence_handler_bell(VteTerminalPrivate*, GValueArray*) (that=0x5638112be000, params=<optimized out>) at vteseq.cc:1018
#7  0x00007f7b4820835e in VteTerminalPrivate::process_incoming() (this=this@entry=0x5638112be000) at vte.cc:3589
        saved_cursor = <optimized out>
        saved_cursor_visible = <optimized out>
        saved_cursor_style = <optimized out>
        bbox_topleft = {x = 2147483647, y = 2147483647}
        bbox_bottomright = {x = -2147483647, y = -2147483647}
        wbuf = 0x563811012020
        c = <optimized out>
        wcount = 1124
        start = <optimized out>
        leftovers = 0
        modified = 1
        bottom = <optimized out>
        again = 0
        invalidated_text = 0
        in_scroll_region = 0
        chunk = <optimized out>
        next_chunk = <optimized out>
        achunk = <optimized out>
        previous_screen = <optimized out>
        top_row = 0
        bottom_row = 107
        __PRETTY_FUNCTION__ = "void VteTerminalPrivate::process_incoming()"
#8  0x00007f7b482094f1 in VteTerminalPrivate::time_process_incoming() (this=this@entry=0x5638112be000) at vte.cc:10458
        elapsed = <optimized out>
        target = <optimized out>
#9  0x00007f7b482095c3 in VteTerminalPrivate::process(bool) (this=this@entry=0x5638112be000, emit_adj_changed=emit_adj_changed@entry=false) at vte.cc:10482
---Type <return> to continue, or q <return> to quit---   
        is_active = <optimized out>
#10 0x00007f7b4820964e in process_timeout(gpointer) (data=data@entry=0x0) at vte.cc:10524
        that = 0x5638112be000
        active = <optimized out>
        l = <optimized out>
        next = 0x0
        again = <optimized out>
#11 0x00007f7b45f35fed in g_timeout_dispatch (source=0x5638114e8910, callback=0x7f7b48209610 <process_timeout(gpointer)>, user_data=0x0) at gmain.c:4629
        timeout_source = 0x5638114e8910
        again = <optimized out>
#12 0x00007f7b45f35587 in g_main_dispatch (context=0x563810fe2fa0) at gmain.c:3148
        dispatch = 0x7f7b45f35fd0 <g_timeout_dispatch>
        prev_source = 0x0
        was_in_call = 0
        user_data = 0x0
        callback = 0x7f7b48209610 <process_timeout(gpointer)>
        cb_funcs = 0x7f7b461fd280 <g_source_callback_funcs>
        cb_data = 0x5638114c7240
        need_destroy = <optimized out>
        source = 0x5638114e8910
        current = 0x56381104f200
        i = 0
#13 0x00007f7b45f35587 in g_main_context_dispatch (context=context@entry=0x563810fe2fa0) at gmain.c:3813
#14 0x00007f7b45f35928 in g_main_context_iterate (context=context@entry=0x563810fe2fa0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3886
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = 4
        fds = 0x5638114c0b90
#15 0x00007f7b45f359bc in g_main_context_iteration (context=context@entry=0x563810fe2fa0, may_block=may_block@entry=1) at gmain.c:3947
        retval = <optimized out>
#16 0x00007f7b464ff8cd in g_application_run (application=0x7f7b3400f6d0 [TestApp], argc=<optimized out>, argv=<optimized out>) at gapplication.c:2378
        arguments = 0x56381104f1c0
        status = 0
        context = 0x563810fe2fa0
        acquired_context = <optimized out>
        __func__ = "g_application_run"
#17 0x000056380f477c40 in test_app_main (argv=<optimized out>, argv_length1=<optimized out>) at app.c:3110
        result = 0
        _tmp0_ = <optimized out>
        _tmp1_ = <optimized out>
        _tmp12_ = <optimized out>
        _tmp13_ = <optimized out>
        app = 0x7f7b3400f6d0 [TestApp]
        _tmp15_ = 0x7f7b3400f6d0 [TestApp]
        _tmp16_ = 0x7f7b3400f6d0 [TestApp]
        _tmp17_ = <optimized out>
        _inner_error_ = 0x0
#18 0x00007f7b44df3dca in __libc_start_main (main=
    0x56380f473780 <main>, argc=2, argv=0x7ffdd60e0058, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdd60e0048)
    at ../csu/libc-start.c:301
        result = <optimized out>
        unwind_buf = 
              {cancel_jmp_buf = {{jmp_buf = {0, -8258205728197462630, 94798774482848, 140728194695248, 0, 0, -2382607398212618854, -2314178869070547558}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7f7b48453e53 <_dl_init+259>, 0x7f7b484385b0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 1212497491}}}
        not_first_call = <optimized out>
#19 0x000056380f4737ca in _start ()

Comment 4 Christian Kellner 2017-06-30 12:56:04 UTC
(gdb) bt
#0  0x00007ffff461564b in raise () from /lib64/libc.so.6
#1  0x00007ffff4617450 in abort () from /lib64/libc.so.6
#2  0x00007ffff1de447c in wl_abort (fmt=0x7ffff1de451f "Error sending request: %s\n")
    at /home/gicmo/Code/gnome/wayland/src/wayland-util.c:419
#3  0x00007ffff1ddeee2 in wl_proxy_marshal_array_constructor_versioned (proxy=0x5555557b3820, opcode=2, 
    args=0x7fffffffd510, interface=0x0, version=1) at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:659
#4  0x00007ffff1ddedaa in wl_proxy_marshal_array_constructor (proxy=0x5555557b3820, opcode=2, args=0x7fffffffd510, 
    interface=0x0) at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:599
#5  0x00007ffff1ddeff9 in wl_proxy_marshal (proxy=0x5555557b3820, opcode=2)
    at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:696
#6  0x00007ffff6ef772e in gtk_shell1_system_bell (gtk_shell1=0x5555557b3820, surface=0x0)
    at ../../gdk/wayland/gtk-shell-client-protocol.h:161
#7  0x00007ffff6ef8b38 in gdk_wayland_display_beep (display=0x5555557b0040)
    at /home/gicmo/Code/gnome/gtk+-3/gdk/wayland/gdkdisplay-wayland.c:671
#8  0x00007ffff6e779a3 in gdk_display_beep (display=0x5555557b0040) at /home/gicmo/Code/gnome/gtk+-3/gdk/gdkdisplay.c:1653
#9  0x00007ffff7bb46a9 in vte_sequence_handler_bell (that=0x5555559ec600, params=<optimized out>) at vteseq.cc:1018
#10 0x00007ffff7ba235e in VteTerminalPrivate::process_incoming (this=this@entry=0x5555559ec600) at vte.cc:3589
#11 0x00007ffff7ba34f1 in VteTerminalPrivate::time_process_incoming (this=this@entry=0x5555559ec600) at vte.cc:10458
#12 0x00007ffff7ba35c3 in VteTerminalPrivate::process (this=this@entry=0x5555559ec600, 
    emit_adj_changed=emit_adj_changed@entry=false) at vte.cc:10482
#13 0x00007ffff7ba364e in process_timeout (data=<optimized out>) at vte.cc:10524
#14 0x00007ffff573b706 in g_timeout_dispatch (source=0x5555557f21a0, callback=0x7ffff7ba3610 <process_timeout(gpointer)>, 
    user_data=0x0) at /home/gicmo/Code/gnome/glib/glib/gmain.c:4629
#15 0x00007ffff573987c in g_main_dispatch (context=0x5555557a8d10) at /home/gicmo/Code/gnome/glib/glib/gmain.c:3148
#16 0x00007ffff573a74c in g_main_context_dispatch (context=0x5555557a8d10) at /home/gicmo/Code/gnome/glib/glib/gmain.c:3813
#17 0x00007ffff573a931 in g_main_context_iterate (context=0x5555557a8d10, block=1, dispatch=1, self=0x555555908120)
    at /home/gicmo/Code/gnome/glib/glib/gmain.c:3886
#18 0x00007ffff573a9f5 in g_main_context_iteration (context=0x5555557a8d10, may_block=1)
    at /home/gicmo/Code/gnome/glib/glib/gmain.c:3947
#19 0x00007ffff5d3206c in g_application_run (application=0x7fffe000f710, argc=0, argv=0x0)
    at /home/gicmo/Code/gnome/glib/gio/gapplication.c:2378
#20 0x000055555555dc40 in test_app_main (argv=<optimized out>, argv_length1=<optimized out>) at app.c:3110
#21 0x00007ffff45ff4da in __libc_start_main () from /lib64/libc.so.6
#22 0x00005555555597ca in _start ()

Comment 5 Debarshi Ray 2017-06-30 13:00:21 UTC
Thanks for the backtraces. So, it is Wayland-specific and isn't new.

Comment 6 Christian Kellner 2017-06-30 13:09:19 UTC
Simpler version:

cat << EOF > bleepdeath.c    
heredoc> #include <gdk/gdk.h>

int
main(int argc, char **argv)
{
  GdkDisplay *display;
  gdk_init(&argc, &argv);

  display = gdk_display_get_default();

  while (1)
    {
      gdk_display_beep(display);
    }

  return 0;
}
EOF

gcc -o beepdeath -Wall bleepdeath.c `pkg-config --libs --cflags gdk-3.0`

(gdb) bt
#0  0x00007ffff63b364b in raise () from /lib64/libc.so.6
#1  0x00007ffff63b5450 in abort () from /lib64/libc.so.6
#2  0x00007ffff43f847c in wl_abort (fmt=0x7ffff43f851f "Error sending request: %s\n")
    at /home/gicmo/Code/gnome/wayland/src/wayland-util.c:419
#3  0x00007ffff43f2ee2 in wl_proxy_marshal_array_constructor_versioned (proxy=0x657fb0, opcode=2, args=0x7fffffffd8b0, 
    interface=0x0, version=1) at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:659
#4  0x00007ffff43f2daa in wl_proxy_marshal_array_constructor (proxy=0x657fb0, opcode=2, args=0x7fffffffd8b0, interface=0x0)
    at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:599
#5  0x00007ffff43f2ff9 in wl_proxy_marshal (proxy=0x657fb0, opcode=2) at /home/gicmo/Code/gnome/wayland/src/wayland-client.c:696
#6  0x00007ffff7b6a72e in gtk_shell1_system_bell (gtk_shell1=0x657fb0, surface=0x0)
    at ../../gdk/wayland/gtk-shell-client-protocol.h:161
#7  0x00007ffff7b6bb38 in gdk_wayland_display_beep (display=0x61a080)
    at /home/gicmo/Code/gnome/gtk+-3/gdk/wayland/gdkdisplay-wayland.c:671
#8  0x00007ffff7aea9a3 in gdk_display_beep (display=0x61a080) at /home/gicmo/Code/gnome/gtk+-3/gdk/gdkdisplay.c:1653
#9  0x000000000040071e in main ()

Comment 7 Yanko Kaneti 2017-06-30 13:21:06 UTC
With the simpler testcase here on rawhide, its bleeping continuously without crashing, the compositor seems to stop working and control can be regained only by logging from outside and killing the bleeper

Comment 8 Yanko Kaneti 2017-06-30 13:36:55 UTC
> With the simpler testcase here on rawhide, its bleeping continuously without
> crashing

Opps. This is just under gdb. A normal run of the test crashes again in a second or two.

Comment 9 Yanko Kaneti 2017-06-30 17:07:19 UTC
This might be misguided but adding a gdk_display_sync(display) after the gdk_display_beep, prevents the overload/abort.  
Everything is jerky but one can still stop the offending beeper

Comment 10 Benjamin Berg 2017-07-19 16:08:08 UTC
There is a GTK+ patch (not yet committed, seems to have been forgotten) upstream which will fix this by throttling the event sounds send to the display. I updated the URL in the bug.

This likely should be reassigned to the GTK+ package and the patches backported.

Comment 11 Debarshi Ray 2017-07-20 10:59:54 UTC
Kalev has built gtk3-3.22.17 for Fedoras >= 25, so it should be fixed for every release since Wayland became the default.

Comment 12 Debarshi Ray 2017-07-20 11:08:29 UTC
(In reply to Debarshi Ray from comment #11)
> Kalev has built gtk3-3.22.17 for Fedoras >= 25, so it should be fixed for
> every release since Wayland became the default.

Oops! Sorry. I didn't realize that the fix missed 3.22.17.

Comment 13 Fedora Update System 2017-07-20 12:24:37 UTC
gtk3-3.22.17-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3b5470b48e

Comment 14 Fedora Update System 2017-07-20 12:24:46 UTC
gtk3-3.22.17-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2017-3b5470b48e

Comment 15 Fedora Update System 2017-07-20 12:24:54 UTC
gtk3-3.22.17-2.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-64455b107f

Comment 16 Fedora Update System 2017-07-20 12:25:01 UTC
gtk3-3.22.17-2.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-64455b107f

Comment 17 Fedora Update System 2017-07-20 22:50:52 UTC
gtk3-3.22.17-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-3b5470b48e

Comment 18 Fedora Update System 2017-07-21 01:21:34 UTC
gtk3-3.22.17-2.fc26 has been pushed to the Fedora 26 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-64455b107f

Comment 19 Fedora Update System 2017-07-24 19:22:02 UTC
gtk3-3.22.17-2.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 20 Fedora Update System 2017-07-25 00:24:13 UTC
gtk3-3.22.17-2.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

Comment 21 Debarshi Ray 2017-09-24 19:27:19 UTC
*** Bug 1394154 has been marked as a duplicate of this bug. ***

Comment 22 Debarshi Ray 2017-09-24 19:28:19 UTC
*** Bug 1371608 has been marked as a duplicate of this bug. ***