Skip to content
  • Ole John Aske's avatar
    aea6669e
    Bug #23049170 SPJ MAY MISREPORT NODEFAILURE DUE TO PARTIAL CONNECTIVITY · aea6669e
    Ole John Aske authored
    If datanodes are only partially connected to the API nodes, a
    particular SPJ node might get its request via a TC on another
    node, without (yet) being connected to the API node itself.
    
    The NodeInfo for the requesting API node will then not have
    any valid info about the API nodes 'm_version', which then
    is reported as '0'.
    
    This caused DbSpj::abort() to incorrectly assume that the API
    node is of version <= 7.2.5, which require a backward compatability
    mode to be used during query abort. That involved sending
    a 'nodeFailure' error instead of the real error as abort reason.
    
    This patch assume that if m_version is not yet available,
    the API node is of a more recent version that 7.2.4.
    There are hardly any customers (none?) left on older
    versions, so this should be a rather safe assumption.
    
    In addition to the testcase, this patch extends the HugoQuery
    framework such that the NdbError causing a failure can be get'ed.
    
    It also fixes a potential issue where the Node_info::m_connected
    member was not initialized by the Node_info constructor.
    aea6669e
    Bug #23049170 SPJ MAY MISREPORT NODEFAILURE DUE TO PARTIAL CONNECTIVITY
    Ole John Aske authored
    If datanodes are only partially connected to the API nodes, a
    particular SPJ node might get its request via a TC on another
    node, without (yet) being connected to the API node itself.
    
    The NodeInfo for the requesting API node will then not have
    any valid info about the API nodes 'm_version', which then
    is reported as '0'.
    
    This caused DbSpj::abort() to incorrectly assume that the API
    node is of version <= 7.2.5, which require a backward compatability
    mode to be used during query abort. That involved sending
    a 'nodeFailure' error instead of the real error as abort reason.
    
    This patch assume that if m_version is not yet available,
    the API node is of a more recent version that 7.2.4.
    There are hardly any customers (none?) left on older
    versions, so this should be a rather safe assumption.
    
    In addition to the testcase, this patch extends the HugoQuery
    framework such that the NdbError causing a failure can be get'ed.
    
    It also fixes a potential issue where the Node_info::m_connected
    member was not initialized by the Node_info constructor.
Loading