Skip to content

occasional scheduler segfault #629

@jimis

Description

@jimis

It happens rarely. Stacktrace:

(gdb) bt
#0  0x00007fbe862d3d54 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () from /lib64/libstdc++.so.6
#1  0x00005651c2ff858d in std::_Rb_tree_const_iterator<std::pair<int const, CompileServer*> >::operator++ (this=<synthetic pointer>)
    at /usr/include/c++/13/bits/stl_tree.h:366
#2  main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/icecc-1.4.0/scheduler/scheduler.cpp:2384

Source code:

#2  main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/icecc-1.4.0/scheduler/scheduler.cpp:2384
2384                ++it;
(gdb) l
2379                int i = it->first;
2380                CompileServer *cs = it->second;
2381                /* handle_activity can delete the channel from the fd2cs list,
2382                   hence advance the iterator right now, so it doesn't become
2383                   invalid.  */
2384                ++it;
2385
2386                if (pollfd_is_set(pollfds, i, POLLIN)) {
2387                    while (!cs->read_a_bit() || cs->has_msg()) {
2388                        if (!handle_activity(cs)) {

Version:

$ rpm -qf /usr/sbin/icecc-scheduler 
icecream-1.4.0-2.7.x86_64

OS is OpenSUSE-Tumbleweed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions