Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash in FontHandle::face_name on wikipedia #2160

Closed
jdm opened this issue Apr 18, 2014 · 8 comments
Closed

Crash in FontHandle::face_name on wikipedia #2160

jdm opened this issue Apr 18, 2014 · 8 comments

Comments

@jdm
Copy link
Member

@jdm jdm commented Apr 18, 2014

http://en.wikipedia.org/wiki/Hamster

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff7c58700 (LWP 12980)]
0x0000000000fad227 in str::raw::from_c_str::h4df27cc098193f89r1q::v0.10.pre ()
Missing separate debuginfos, use: debuginfo-install libtxc_dxtn-1.0.0-2.fc17.x86_64
(gdb) bt
#0  0x0000000000fad227 in str::raw::from_c_str::h4df27cc098193f89r1q::v0.10.pre ()
#1  0x0000000000b71f53 in gfx::platform::linux::font::FontHandle.FontHandleMethods::face_name (self=0x7ffff42b68f8) at /home/jdm/sdb/servo-master/src/components/gfx/platform/linux/font.rs:129
#2  0x0000000000b97d95 in gfx::font_list::FontEntry::new (handle=...) at /home/jdm/sdb/servo-master/src/components/gfx/font_list.rs:144
#3  0x0000000000b97747 in gfx::platform::linux::font_list::FontListHandle::load_variations_for_family (self=0x7fffec109760, family=0x7fffec0f2550)
    at /home/jdm/sdb/servo-master/src/components/gfx/platform/linux/font_list.rs:124
#4  0x0000000000b96084 in gfx::font_list::FontFamily::load_family_variations (self=0x7fffec0f2550, list=0x7fffec109760) at /home/jdm/sdb/servo-master/src/components/gfx/font_list.rs:102
#5  0x0000000000b95a39 in gfx::font_list::FontFamily::find_font_for_style (self=0x7fffec0f2550, list=0x7fffec109760, style=0x7ffff42b8580) at /home/jdm/sdb/servo-master/src/components/gfx/font_list.rs:108
#6  0x0000000000b91f5f in gfx::font_list::FontList::find_font_in_family (self=0x7fffec109708, family_name=0x7ffff42b7ea8, style=0x7ffff42b8580) at /home/jdm/sdb/servo-master/src/components/gfx/font_list.rs:66
#7  0x0000000000b8df31 in gfx::font_context::FontContext::create_font_group (self=0x7fffec1096f0, style=0x7ffff42b8580) at /home/jdm/sdb/servo-master/src/components/gfx/font_context.rs:131
#8  0x0000000000b8baf3 in gfx::font_context::FontContext::get_resolved_font_for_style (self=0x7fffec1096f0, style=0x7ffff42b8580) at /home/jdm/sdb/servo-master/src/components/gfx/font_context.rs:83
#9  0x00000000005e4e41 in servo::layout::construct::FlowConstructor<'a>::set_inline_info_for_inline_child (self=0x7ffff42c2130, boxes=..., parent_node=0x7ffff42c2148)
    at /home/jdm/sdb/servo-master/src/components/main/layout/construct.rs:688
#10 0x00000000005e2989 in servo::layout::construct::FlowConstructor<'a>::build_boxes_for_nonreplaced_inline_content (self=0x7ffff42c2130, node=0x7ffff42c2148)
    at /home/jdm/sdb/servo-master/src/components/main/layout/construct.rs:660
#11 0x00000000005e8b45 in servo::layout::construct::FlowConstructor<'a>::build_boxes_for_inline (self=0x7ffff42c2130, node=0x7ffff42c2148)
    at /home/jdm/sdb/servo-master/src/components/main/layout/construct.rs:771
#12 0x00000000004f9162 in process (self=0x7ffff42c2130, node=0x7ffff42c2148) at /home/jdm/sdb/servo-master/src/components/main/layout/construct.rs:1006
#13 servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42ca020, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, applicable_declarations=
    0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...) at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:525
#14 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42d1e90, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#15 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42d9d00, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#16 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42e1b70, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#17 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42e99e0, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#18 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42f1850, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#19 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff42f96c0, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#20 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff4301530, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#21 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff43093a0, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#22 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff4311210, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#23 0x00000000004f5cce in servo::css::matching::LayoutNode<'ln>.MatchMethods::recalc_style_for_subtree (self=0x7ffff43192c8, stylist=0x7fffdc003fa0, layout_context=0x7ffff4318d98, font_context=0x0, 
    applicable_declarations=0x7ffff43187c8, applicable_declarations_cache=0x7ffff43187b0, style_sharing_candidate_cache=0x7ffff4318790, parent=...)
    at /home/jdm/sdb/servo-master/src/components/main/css/matching.rs:513
#24 0x000000000064d57a in fn28649 () at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:583
#25 0x000000000064d269 in time::profile::he1fbcded758d2256xHA::v0.0 () at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:574
#26 0x0000000000644313 in servo::layout::layout_task::LayoutTask::handle_reflow (self=0x7ffff4319c58, data=0x7fffec01eef0) at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:574
#27 0x00000000006438a0 in fn28459 () at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:355
#28 0x00000000004be99e in time::profile::h08ea46eeae50615bxHA::v0.0 () at /home/jdm/sdb/servo-master/src/components/main/compositing/compositor.rs:739
#29 0x000000000063e38c in servo::layout::layout_task::LayoutTask::handle_request (self=0x7ffff4319c58) at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:354
#30 0x000000000061eb92 in servo::layout::layout_task::LayoutTask::start (self=0x7ffff4319c58) at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:322
#31 0x000000000061e061 in fn27936 () at /home/jdm/sdb/servo-master/src/components/main/layout/layout_task.rs:275
#32 0x0000000000ee5448 in task::bootstrap_green_task::closure.7058 ()
#33 0x0000000001022783 in rt::task::Task::run::closure.40680 ()
#34 0x000000000102d68c in rust_try ()
#35 0x00000000010225e2 in rt::task::Task::run::h7977c6fd6d6e0e93148::v0.10.pre ()
#36 0x0000000000ee52fa in task::bootstrap_green_task::ha6a1ce90f7e00c6dZ5b::v0.10.pre ()
#37 0x0000000000000000 in ?? ()

Looks like the FontHandle isn't valid anymore.

@glennw
Copy link
Member

@glennw glennw commented Jun 11, 2014

Not occurring with current servo on my machine - close?

@jdm
Copy link
Member Author

@jdm jdm commented Jun 11, 2014

Sure, can't reproduce either.

@jdm jdm closed this Jun 11, 2014
@jdm jdm reopened this Jun 11, 2014
@jdm
Copy link
Member Author

@jdm jdm commented Jun 11, 2014

Actually I got this more descriptive one after clicking some links:

task 'LayoutWorker' failed at 'CString is null!', /home/jdm/sdb/servo/src/compiler/rust/src/libstd/c_str.rs:197
(gdb) bt
#0  0x0000000000b3cf40 in rust_fail ()
#1  0x0000000000b3cf13 in rt::unwind::Unwinder::begin_unwind::h60563c464593bdfaxoy::v0.11.0.pre ()
#2  0x0000000000b1d3e8 in rt::unwind::begin_unwind_inner::h614b985bc056a568Ovy::v0.11.0.pre ()
#3  0x0000000000b1c41d in rt::unwind::begin_unwind::h16487830871967427190::v0.11.0.pre ()
#4  0x0000000000b1f1a3 in str::raw::from_c_str::hcb18248ed2f62bf2Grd::v0.11.0.pre ()
#5  0x00000000008650f1 in gfx::font_list::FontEntry::new (handle=...) at /home/jdm/sdb/servo/src/components/gfx/platform/linux/font.rs:129
#6  0x0000000000864808 in gfx::platform::linux::font_list::FontListHandle::load_variations_for_family (self=0x7fff3d4e8100, family=<optimized out>)
    at /home/jdm/sdb/servo/src/components/gfx/platform/linux/font_list.rs:124
#7  0x0000000000863d10 in load_family_variations (self=0x7fff3d50f690, list=<optimized out>) at /home/jdm/sdb/servo/src/components/gfx/font_list.rs:101
#8  gfx::font_list::FontFamily::find_font_for_style (self=0x7fff3d50f690, list=<optimized out>, style=0x7fff977e85a8) at /home/jdm/sdb/servo/src/components/gfx/font_list.rs:107
#9  0x0000000000861ca4 in gfx::font_list::FontList::find_font_in_family (self=<optimized out>, family_name=<optimized out>, style=0x7fff977e85a8) at /home/jdm/sdb/servo/src/components/gfx/font_list.rs:66
#10 0x000000000085fc23 in create_font_group (self=<optimized out>, style=<optimized out>) at /home/jdm/sdb/servo/src/components/gfx/font_context.rs:131
#11 gfx::font_context::FontContext::get_resolved_font_for_style (self=0x7fff3d4e8080, style=0x7fff977e85a8) at /home/jdm/sdb/servo/src/components/gfx/font_context.rs:83
#12 0x0000000000571f25 in servo::layout::text::TextRunScanner::flush_clump_to_list (self=0x7fff977ec3f0, font_context=0x7fff3d4e8080, out_fragments=0x7fff977e9040, last_whitespace=<optimized out>, 
    in_fragments=...) at /home/jdm/sdb/servo/src/components/main/layout/text.rs:145
#13 0x00000000004f9264 in servo::layout::text::TextRunScanner::scan_for_runs (self=0x7fff977ec3f0, font_context=0x7fff3d4e8080, flow=...) at /home/jdm/sdb/servo/src/components/main/layout/text.rs:58
#14 0x0000000000501893 in flush_inline_fragments_to_flow_or_list (flow_list=<optimized out>, whitespace_stripping=StripWhitespaceFromEnd, node=<optimized out>, self=<optimized out>, fragment_accumulator=..., 
    flow=<optimized out>) at /home/jdm/sdb/servo/src/components/main/layout/construct.rs:298
#15 servo::layout::construct::FlowConstructor<'a>::build_flow_using_children (self=0x7fff977f57b0, flow=..., node=0x7fff977f57a0) at /home/jdm/sdb/servo/src/components/main/layout/construct.rs:450
#16 0x0000000000504fa2 in servo::layout::construct::FlowConstructor<'a>::build_flow_for_block (self=0x7fff977f57b0, node=0x7fff977f57a0) at /home/jdm/sdb/servo/src/components/main/layout/construct.rs:484
#17 0x000000000056602d in process (self=<optimized out>, node=<optimized out>) at /home/jdm/sdb/servo/src/components/main/layout/construct.rs:965
#18 servo::layout::parallel::construct_flows (proxy=0x7fff977fe168, unsafe_layout_node=...) at /home/jdm/sdb/servo/src/components/main/layout/parallel.rs:317
#19 0x0000000000562381 in servo::layout::parallel::recalc_style_for_node (proxy=0x7fff977fe168, unsafe_layout_node=...) at /home/jdm/sdb/servo/src/components/main/layout/parallel.rs:300
#20 0x0000000000541093 in workqueue::WorkQueue$LT$QueueData$C$$x20WorkData$GT$::new::closure.29613 ()
#21 0x0000000000a78308 in task::spawn_opts::closure.7820 ()
#22 0x0000000000b383e3 in rt::task::Task::run::closure.25277 ()
#23 0x0000000000b467fc in rust_try ()
#24 0x0000000000b3834f in rt::task::Task::run::hd9374ac35cf4aederkw::v0.11.0.pre ()
#25 0x0000000000a78170 in task::spawn_opts::closure.7793 ()
#26 0x0000000000b3c114 in rt::thread::thread_start::h8555aeb624391221Z3w::v0.11.0.pre ()
#27 0x0000003a5e607d15 in start_thread (arg=0x7fff977ff700) at pthread_create.c:308
#28 0x0000003a5def253d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:114
@jdm
Copy link
Member Author

@jdm jdm commented Jun 11, 2014

I also sometimes just get the original segfault instead of a descriptive failure, so it does sound like garbage memory being used.

@jdm
Copy link
Member Author

@jdm jdm commented Jun 11, 2014

I can reproduce this extremely reliably by clicking the Talk link at the top.

@sviter
Copy link

@sviter sviter commented Aug 30, 2017

No crash for me on current servo

@jdm jdm closed this Aug 30, 2017
@jdm jdm reopened this Aug 30, 2017
@jdm
Copy link
Member Author

@jdm jdm commented Aug 30, 2017

Actually, let's leave this open until someone tries it on linux.

@jdm jdm added the P-linux label Aug 30, 2017
@dralley
Copy link
Contributor

@dralley dralley commented Mar 25, 2020

Cannot reproduce the segfault

@jdm jdm closed this Mar 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants
You can’t perform that action at this time.