bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue 1732 in lilypond: occasional segfault when compiling input/reg


From: David Kastrup
Subject: Re: Issue 1732 in lilypond: occasional segfault when compiling input/regression/midi/key-initial.ly
Date: Tue, 23 Aug 2011 15:58:07 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Mike Solomon <address@hidden> writes:

> On Aug 23, 2011, at 2:38 PM, address@hidden wrote:
>
>> 
>> Comment #13 on issue 1732 by address@hidden: occasional
>> segfault when compiling input/regression/midi/key-initial.ly
>> http://code.google.com/p/lilypond/issues/detail?id=1732
>> 
>> Looking through the code, it appears as follows to me:
>> -) Grob::internal_set_property calls Grob::is_live (), which crashed
>> in line 312 with the check
>>      return scm_is_pair (immutable_property_alist_);
>> -) So, it seems like the immutable_property_alist_ member is not initialized.
>> -) All Grob constructors initialize that member from the passed
>> argument (either Grob* or SCM props)
>> -) So, my conclusion for now is that somewhere a grob (or some child
>> class instance) is created with the Grob (SCM props) constructor,
>> where the passed argument SCM props is some uninitialized value.
>> 
>
> To test this, you can use scm_display (immutable_property_alist_,
> scm_current_error_port ()); in the constructor.  You'll get a lot of
> garbage, but it should (in theory) crash once it hits the
> uninitialized value.

ection>) (details (lengths 3.5 3.5 3.5 4.25 5.0 6.0) (beamed-lengths 3.26 3.5 
3.6) (beamed-minimum-free-lengths 1.83 1.5 1.25) 
(beamed-extreme-minimum-free-lengths 2.0 1.25) (stem-shorten 1.0 0.5)) 
(direction . #<primitive-procedure ly:stem::calc-direction>) (duration-log . 
#<procedure stem::calc-duration-log (grob)>) (flag . #<primitive-procedure 
ly:stem::calc-flag>) (length . #<primitive-procedure ly:stem::calc-length>) 
(neutral-direction . -1) (positioning-done . #<primitive-procedure 
ly:stem::calc-positioning-done>) (stem-begin-position . #<primitive-procedure 
ly:stem::calc-stem-begin-position>) (stem-end-position . #<primitive-procedure 
ly:stem::calc-stem-end-position>) (stem-info . #<primitive-procedure 
ly:stem::calc-stem-info>) (stencil . #<primitive-procedure ly:stem::print>) 
(thickness . 1.3) (X-extent . #<primitive-procedure ly:stem::width>) (X-offset 
. #<primitive-procedure ly:stem::offset-callback>) (Y-extent . 
#<primitive-procedure ly:stem::height>) (Y-offset . #<primitive-procedure 
ly:staff-symbol-referencer::callback>) (meta (name . Stem) (class . Item) 
(interfaces grob-interface font-interface item-interface 
stem-interface)))((knee-spacing-correction . 1.0) (same-direction-correction . 
0.25) (space-to-barline . #t) (stem-spacing-correction . 0.5) (meta (name . 
NoteSpacing) (class . Item) (interfaces grob-interface item-interface 
note-spacing-interface spacing-interface)))((ignore-collision . #t) (axes 0 1) 
(bound-alignment-interfaces rhythmic-head-interface stem-interface) 
(horizontal-skylines . #<primitive-procedure 
ly:separation-item::calc-skylines>) (skyline-vertical-padding . 0.15) (X-extent 
. #<primitive-procedure ly:axis-group-interface::width>) (Y-extent . 
#<primitive-procedure ly:axis-group-interface::height>) (meta (name . 
NoteColumn) (class . Item) (object-callbacks (pure-Y-common . 
#<primitive-procedure ly:axis-group-interface::calc-pure-y-common>) 
(pure-relevant-grobs . #<primitive-procedure 
ly:axis-group-interface::calc-pure-relevant-grobs>)) (interfaces grob-interface 
axis-group-interface item-interface note-column-interface 
separation-item-interface)))((non-musical . #t) (stem-spacing-correction . 0.4) 
(meta (name . StaffSpacing) (class . Item) (interfaces grob-interface 
item-interface spacing-interface staff-spacing-interface)))
Program received signal SIGSEGV, Segmentation fault.
Grob::internal_set_property (this=0x12, sym=0xb5f42740, v=0x12)
    at grob-property.cc:111
111                                    sym, v);
(gdb) bt
#0  Grob::internal_set_property (this=0x12, sym=0xb5f42740, v=0x12)
    at grob-property.cc:111
#1  0x082b10db in Engraver_dispatch_list::apply (this=0x8595fa8, gi=...)
    at translator-dispatch-list.cc:35
#2  0x080f20b9 in acknowledge_grobs (this=0x84e8308) at engraver-group.cc:129
#3  Engraver_group::acknowledge_grobs (this=0x84e8308) at engraver-group.cc:90
#4  0x080f25e8 in Engraver_group::do_announces (this=0x84e8308)
    at engraver-group.cc:178
#5  0x080f25cf in Engraver_group::do_announces (this=0x859a9c8)
    at engraver-group.cc:169
#6  0x08218961 in one_time_step (this=0x859a9c8) at score-engraver.cc:152
#7  Score_engraver::one_time_step_callback (self=0x859a9c8, ev=0xb7554540)
    at score-engraver.cc:145
#8  0x080e243a in Dispatcher::dispatch (this=0x859c7a0, sev=0xb7554540)
    at dispatcher.cc:152
#9  0x080d6e37 in Context::internal_send_stream_event (this=0x8587e2c, 
    type=0xb71a40e0, origin=0x0, props=0xbfffbe58) at context.cc:460
#10 0x08117e24 in Global_context::run_iterator_on_me (this=0x8587dc8, iter=
    0x8587f90) at global-context.cc:169
#11 0x0811634c in ly_interpret_music_expression (mus=0x8587dc8, ctx=0xb7589a60)
    at global-context-scheme.cc:119
#12 0x08116af6 in ly_run_translator (mus=0xb75da3f0, output_def=0xb7589a60)
    at global-context-scheme.cc:146
#13 0x0821d9ae in Score::book_rendering (this=0x859c760, layoutbook=0x859c808, 
    default_def=0x84b34e8) at score.cc:155
#14 0x080a5184 in Book::process_score (this=0x859c7d0, s=0xb75a3fb8, 
    output_paper_book=0x84e9c40, layout=0x84b34e8) at book.cc:236
[...]

This is in tablature-string-tunings.ly which is just

\version "2.14.0"

\header {

  texidoc = "For other tunings, it is sufficient to set
    @code{stringTunings}. The number of staff lines is adjusted
    accordingly."

}


\new TabStaff {
  \set TabStaff.stringTunings = #`(,(ly:make-pitch 0 3 0)
                                   ,(ly:make-pitch 0 5 SHARP)
                                   ,(ly:make-pitch 1 1 SHARP)
                                   ,(ly:make-pitch 1 4 SHARP))
  \relative c''  { c4 d e f }
}




-- 
David Kastrup




reply via email to

[Prev in Thread] Current Thread [Next in Thread]