Skip to content
Snippets Groups Projects
  • Rob Swindell's avatar
    e5f64faf
    Log a critical error message if a node is WFC, but its socket is still in use · e5f64faf
    Rob Swindell authored
    This should avoid/work-around issue #630
    
    Nelgin's terminal server log indicated that the node's configuration was being
    reloaded for a new client connection (which doesn't normally/always happen,
    only when there's been a config file change or a node "rerun" requested),
    while there was still a user online using that node. This would explain the
    segfault (configuration fields being freed and reallocated).
    
    The node_socket[] array indicates when a node thread is actively servicing
    a client, so it should contain INVALID_SOCKET for the any node's that WFC.
    If it doesn't, that means something/someone changed the node's status value
    to 0 (WFC) in the node.dab file while the node was still in-use. Let's not
    crash in this case and rather just log the message and give the client the
    next available node (if any).
    e5f64faf
    History
    Log a critical error message if a node is WFC, but its socket is still in use
    Rob Swindell authored
    This should avoid/work-around issue #630
    
    Nelgin's terminal server log indicated that the node's configuration was being
    reloaded for a new client connection (which doesn't normally/always happen,
    only when there's been a config file change or a node "rerun" requested),
    while there was still a user online using that node. This would explain the
    segfault (configuration fields being freed and reallocated).
    
    The node_socket[] array indicates when a node thread is actively servicing
    a client, so it should contain INVALID_SOCKET for the any node's that WFC.
    If it doesn't, that means something/someone changed the node's status value
    to 0 (WFC) in the node.dab file while the node was still in-use. Let's not
    crash in this case and rather just log the message and give the client the
    next available node (if any).