unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor
@ 2009-04-23 12:28 Daniel Clemente
  2009-05-14 12:03 ` Daniel Clemente
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Clemente @ 2009-04-23 12:28 UTC (permalink / raw)
  To: emacs-pretest-bug


This is a hang I had with the code from 20.m4.2009, which I could not reproduce anymore. Please ignore it if this was already fixed or the code seems correct.


I could get this log of system calls:

  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0x9eb3528, 32, 786432, 8)   = 411
  XftGlyphExtents(0x8709800, 0x9eb3528, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  memmove(0xbfb2deb8, 0xee001a0, 72, 0xbfb2df0c, 0xbfb2df10) = 0xbfb2deb8
  memmove(0xbfb2dd18, 0x100af008, 72, 12, 0xbfb2dd18) = 0xbfb2dd18
  mallopt(-4, 0, -1, 0x9e7e498, 0x9e7e498)            = 1
  malloc(60)                                          = 0x110cf650
  malloc(28)                                          = 0x110cf690
  mallopt(-4, 0x5f5e100, -1, 0x9e7e498, 0x9e7e498)    = 1
  __ctype_tolower_loc()                               = 0xb70f6b14
  __ctype_tolower_loc()                               = 0xb70f6b14
  __ctype_tolower_loc()                               = 0xb70f6b14
  __ctype_tolower_loc()                               = 0xb70f6b14
  XftCharIndex(0x8709800, 0xa18e968, 115, 0xe7a0a50, 62514) = 330
  XftGlyphExtents(0x8709800, 0xa18e968, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0xa18e968, 101, 786432, 8)  = 313
  XftGlyphExtents(0x8709800, 0xa18e968, 0xbfb2e05c, 1, 0xbfb2deb8) = 0
  XftCharIndex(0x8709800, 0xa18e968, 109, 786432, 8)  = 335
  XftGlyphExtents(0x8709800, 0xa18e968, 0xbfb2e05c, 1, 0xbfb2deb8) = 0




  A backtrace:

(gdb) bt
#0  0xb755c9f0 in XftGlyphExtents (dpy=0x8709800, pub=0x9eb3528, glyphs=0xbfb2c45c, nglyphs=1, extents=0xbfb2c2b8) at ../../src/xftextent.c:68
#1  0x082330c7 in xftfont_text_extents ()
#2  0x080924fd in x_produce_glyphs ()
#3  0x0807e49e in move_it_in_display_line_to ()
#4  0x0807fb3a in move_it_to ()
#5  0x0808739e in move_it_vertically_backward ()
#6  0x080adecb in Frecenter ()
#7  0x081cdc1b in Feval ()
#8  0x081cdebf in Fprogn ()
#9  0x081c737e in Fsave_excursion ()
#10 0x081cdccb in Feval ()
#11 0x081cdebf in Fprogn ()
#12 0x081cdccb in Feval ()
#13 0x081cdccb in Feval ()
#14 0x081cda80 in Feval ()
#15 0x081cdebf in Fprogn ()
#16 0x081c719b in Fsave_restriction ()
#17 0x081cdccb in Feval ()
#18 0x081cdebf in Fprogn ()
#19 0x081cdccb in Feval ()
#20 0x081ce0a5 in Funwind_protect ()
#21 0x081cdccb in Feval ()
#22 0x081cdebf in Fprogn ()
#23 0x081c00e6 in Fsave_current_buffer ()
#24 0x081cdccb in Feval ()
#25 0x081cee1f in Flet ()
#26 0x081cdccb in Feval ()
#27 0x081cda80 in Feval ()
#28 0x081cee1f in Flet ()
#29 0x081cdccb in Feval ()
#30 0x081cdccb in Feval ()
#31 0x081cdebf in Fprogn ()
#32 0x081cc0e5 in funcall_lambda ()
#33 0x081cc294 in Ffuncall ()
#34 0x081ccbb1 in run_hook_with_args ()
#35 0x081cce07 in run_hook_with_args_2 ()
#36 0x08088842 in try_scrolling ()
#37 0x0809676e in redisplay_window ()
#38 0x080976d3 in redisplay_window_0 ()
#39 0x081caca6 in internal_condition_case_1 ()
#40 0x080751f8 in redisplay_windows ()
#41 0x0808da75 in redisplay_internal ()
#42 0x0808e6f2 in redisplay_preserve_echo_area ()
#43 0x08057759 in sit_for ()
#44 0x0815b8e8 in command_loop_1 ()
#45 0x081caee0 in internal_condition_case ()
#46 0x0814fd95 in command_loop_2 ()
#47 0x081cafba in internal_catch ()
#48 0x081524b1 in recursive_edit_1 ()
#49 0x081820c5 in read_minibuf ()






Another time I noticed the hang, the backtrace was:

(gdb) bt
#0  0xb755c7c1 in XftGlyphExtents (dpy=0x8709800, pub=0xa18e968, glyphs=0xbfb2e05c, nglyphs=1, extents=0xbfb2deb8) at ../../src/xftextent.c:32
#1  0x082330c7 in xftfont_text_extents ()
#2  0x080924fd in x_produce_glyphs ()
#3  0x0807e49e in move_it_in_display_line_to ()
#4  0x0807fd30 in move_it_to ()
#5  0x08088ab0 in try_scrolling ()
#6  0x0809676e in redisplay_window ()
#7  0x080976d3 in redisplay_window_0 ()
#8  0x081caca6 in internal_condition_case_1 ()
#9  0x080751f8 in redisplay_windows ()
#10 0x0808da75 in redisplay_internal ()
#11 0x0808e6f2 in redisplay_preserve_echo_area ()
#12 0x08057759 in sit_for ()
#13 0x0815b8e8 in command_loop_1 ()
#14 0x081caee0 in internal_condition_case ()
#15 0x0814fd95 in command_loop_2 ()
#16 0x081cafba in internal_catch ()
#17 0x081524b1 in recursive_edit_1 ()
#18 0x081820c5 in read_minibuf ()
#19 0x081cdb52 in Feval ()




GNU Emacs 23.0.92.3 (i686-pc-linux-gnu, GTK+ Version 2.16.0) of 2009-04-20 on CPU107

ii  libxft-dev                                 2.1.13-3ubuntu1                    FreeType-based font drawing library for X (d
ii  libxft2                                    2.1.13-3ubuntu1                    FreeType-based font drawing library for X
ii  libxft2-dbg                                2.1.13-3ubuntu1                    FreeType-based font drawing library for X (u











^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor
  2009-04-23 12:28 bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor Daniel Clemente
@ 2009-05-14 12:03 ` Daniel Clemente
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Clemente @ 2009-05-14 12:03 UTC (permalink / raw)
  To: bug-gnu-emacs; +Cc: emacs-pretest-bug

El dj, abr 23 2009, Daniel Clemente va escriure:
> This is a hang I had with the code from 20.m4.2009, which I could not reproduce anymore. 

  Today it happened again with a newer Emacs, showing the same effects:

XftCharIndex(0xcd8b200, 0xcac8b80, 32, 786432, 8)                              = 411
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
memmove(0xbf9fdfa8, 0xfa68e18, 72, 0xbf9fdffc, 0xbf9fe000)                     = 0xbf9fdfa8
memmove(0xbf9fde08, 0xf3cc098, 72, 12, 0xbf9fde08)                             = 0xbf9fde08
__ctype_tolower_loc()                                                          = 0xb70c6b14
__ctype_tolower_loc()                                                          = 0xb70c6b14
__ctype_tolower_loc()                                                          = 0xb70c6b14
__ctype_tolower_loc()                                                          = 0xb70c6b14
XftCharIndex(0xcd8b200, 0xcac8b80, 106, 0xfe02c34, 1216)                       = 323
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 112, 786432, 8)                             = 319
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 97, 786432, 8)                              = 673
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 95, 786432, 8)                              = 662
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 121, 786432, 8)                             = 325
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 95, 786432, 8)                              = 662
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 99, 786432, 8)                              = 682
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
strlen("font for")                                                             = 8
memmove(0x10931b5c, 0x823e60f, 8, 0xbf9fe0b4, 9712)                            = 0x10931b5c
XftCharExists(0xcd8b200, 0xd338dc8, 237, 0xce8c450, 0xff33570)                 = 1
XftCharIndex(0xcd8b200, 0xd338dc8, 237, 0x8225671, 0xf165965)                  = 432
XftGlyphExtents(0xcd8b200, 0xd338dc8, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 97, 786432, 8)                              = 673
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)               = 0
XftCharIndex(0xcd8b200, 0xcac8b80, 32, 0xfe02b8c, 1228)                        = 411



  Notice the "font for" string; that may be meaningful.


  After waiting around 3 minutes, I saw a round of fast free() calls for a while:


free(0x10f5e230)                                                               = <void>
free(0x10f5e330)                                                               = <void>
free(0x10f5e1d0)                                                               = <void>
free(0x10f5e210)                                                               = <void>
free(0x10f5e170)                                                               = <void>
free(0x10f5e270)                                                               = <void>

…


  Then it started again, and so on:

XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)               = 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 102, 786432, 8)                             = 314
XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)               = 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 101, 786432, 8)                             = 313
XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)               = 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 114, 786432, 8)                             = 326
…


  The backtrace showed the first time:

(gdb) bt
#0  0x0821e32e in find_interval ()
#1  0x08224402 in Fnext_single_property_change ()
#2  0x0822a467 in composition_compute_stop_pos ()
#3  0x08073928 in compute_stop_pos ()
#4  0x00000187 in ?? ()
#5  0xffffffff in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Current language:  auto; currently asm
(gdb) 


  And after continuing and stopping again:


#0  0x081d11cc in assq_no_quit ()
#1  0x080f0908 in get_lface_attributes ()
#2  0x080f0b73 in merge_face_ref ()
#3  0x080f70ff in face_at_buffer_position ()
#4  0x0807353a in handle_face_prop ()
#5  0x0807aecd in handle_stop ()
#6  0x0807e0ef in next_element_from_buffer ()
#7  0x0807d055 in get_next_display_element ()
#8  0x0807e412 in move_it_in_display_line_to ()
#9  0x0807fd30 in move_it_to ()
#10 0x08088ab0 in try_scrolling ()
#11 0x0809676e in redisplay_window ()
#12 0x080976d3 in redisplay_window_0 ()
#13 0x081cac76 in internal_condition_case_1 ()
#14 0x08074fdb in redisplay_windows ()
#15 0x0808da75 in redisplay_internal ()
#16 0x0808e6f2 in redisplay_preserve_echo_area ()
#17 0x08057759 in sit_for ()
#18 0x0815b8b8 in command_loop_1 ()
#19 0x081caeb0 in internal_condition_case ()
#20 0x0814fd65 in command_loop_2 ()
#21 0x081caf8a in internal_catch ()
#22 0x08152481 in recursive_edit_1 ()
#23 0x08182095 in read_minibuf ()
#24 0x081cdb22 in Feval ()
#25 0x081cde8f in Fprogn ()
#26 0x081cc0b5 in funcall_lambda ()
#27 0x081cdf4b in apply_lambda ()
#28 0x081cd8cf in Feval ()
#29 0x081cdd40 in Fsetq ()
#30 0x081cdc9b in Feval ()
#31 0x081cedef in Flet ()
#32 0x081cdc9b in Feval ()
#33 0x081cde8f in Fprogn ()
#34 0x081cc0b5 in funcall_lambda ()
#35 0x081cdf4b in apply_lambda ()
#36 0x081cd8cf in Feval ()
#37 0x081cde8f in Fprogn ()
#38 0x081caf8a in internal_catch ()
#39 0x081cdcfd in Fcatch ()
#40 0x081cdc9b in Feval ()
#41 0x081cdd40 in Fsetq ()
#42 0x081cdc9b in Feval ()
#43 0x081cedef in Flet ()
#44 0x081cdc9b in Feval ()
#45 0x081ce83d in Fcond ()
#46 0x081cdc9b in Feval ()
#47 0x081ceb77 in FletX ()
#48 0x081cdc9b in Feval ()
#49 0x081cde8f in Fprogn ()
#50 0x081cc0b5 in funcall_lambda ()
#51 0x081cdf4b in apply_lambda ()
#52 0x081cd8cf in Feval ()
#53 0x081cdd40 in Fsetq ()
#54 0x081cdc9b in Feval ()
#55 0x081cedef in Flet ()
#56 0x081cdc9b in Feval ()
#57 0x081c827a in Fcall_interactively ()
#58 0x081cc626 in Ffuncall ()
#59 0x081cc7b9 in call3 ()
#60 0x0815b314 in command_loop_1 ()
#61 0x081caeb0 in internal_condition_case ()
#62 0x0814fd65 in command_loop_2 ()
#63 0x081caf8a in internal_catch ()
#64 0x0815250f in recursive_edit_1 ()
#65 0x08152624 in Frecursive_edit ()
#66 0x081488c7 in main ()



  My Emacs was this time:
GNU Emacs 23.0.92.6 (i686-pc-linux-gnu, GTK+ Version 2.16.0) of 2009-04-27
  The ./configure I had used is:
CFLAGS="-O3 -w" ./configure --prefix=/opt/dc
  It ran under --daemon.



-- Daniel









^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor
@ 2009-05-14 19:26 Chong Yidong
  0 siblings, 0 replies; 3+ messages in thread
From: Chong Yidong @ 2009-05-14 19:26 UTC (permalink / raw)
  To: Daniel Clemente; +Cc: 3090

>   Today it happened again with a newer Emacs, showing the same
>   effects:

Please try compiling Emacs without optimization, and with debugging
symbols: i.e., `CFLAGS="-g"'.  That will provide a more informative
backtrace.






^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-05-14 19:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-23 12:28 bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor Daniel Clemente
2009-05-14 12:03 ` Daniel Clemente
  -- strict thread matches above, loose matches on Subject: below --
2009-05-14 19:26 Chong Yidong

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).