Public bug reported:

Whilst working on the development branch I decided to enable the autologin 
(check box on "connection preferences" dialog) and found that it seg. faults 
consistently on the first use of TVar::getName()
whilst loading in the selected profile.  I rechecked on the release_30 
(post-"delta") preview and got precisely the same behaviour at the same point, 
for the latter the top end of the stack trace was:

1   QString::QString                                        qstring.h      898  
0x467a1a       
2   TVar::getName                                           TVar.cpp       68   
0x74784d       
3   VarUnit::shortVarName                                   VarUnit.cpp    153  
0x74974a       
4   VarUnit::addSavedVar                                    VarUnit.cpp    189  
0x749d1d       
5   XMLimport::readVariableGroup                            XMLimport.cpp  240  
0x7579a6       
6   XMLimport::readVariablePackage                          XMLimport.cpp  293  
0x757e3c       
7   XMLimport::readPackage                                  XMLimport.cpp  588  
0x759b72       
8   XMLimport::importPackage                                XMLimport.cpp  146  
0x756f84       
9   mudlet::doAutoLogin                                     mudlet.cpp     2152 
0x5fabd1       
10  mudlet::startAutoLogin                                  mudlet.cpp     2119 
0x5fa57d       
11  mudlet::qt_static_metacall                              moc_mudlet.cpp 300  
0x76e4d3       
... <More>                                                                      
               

At 3 we have:

QStringList VarUnit::shortVarName(TVar * var){
    QStringList names;
    if (!var || var->getName() == "_G"){
        names << "";
        return names;
    }
    names << var->getName();
    TVar * p = var->getParent();
==> while (p && p->getName() != "_G"){ <== Where crash is happening
        names.insert(0,p->getName());
        p = p->getParent();
    }
    return names;
}

and looking in the debugger p, although non-zero {and thus passing the first 
test in the while(...)}
it is NOT a valid entity, i.e. the preceding var->getParent() is NOT producing 
a valid value.

As this is a regression (it disables autologin) it must be rated at least a 
"High" priority item only the fact that the ability to start a profile 
automatically is a useful rather than an essential feature stops this being a 
"Critical" - as well as indicating how many users (none at all)
seem to be using it for the latest code versions.  I will investigate further 
and try and triage what introduced it, but I expect some re-factoring has 
eliminated some initialization step that is needed when auto-login is used but 
is not encountered otherwise...!

** Affects: mudlet
     Importance: High
         Status: New


** Tags: regession

-- 
You received this bug notification because you are a member of Mudlet
Makers, which is subscribed to Mudlet.
https://bugs.launchpad.net/bugs/1624720

Title:
  Crash on first use of TVar::getName() during autologin

Status in Mudlet:
  New

Bug description:
  Whilst working on the development branch I decided to enable the autologin 
(check box on "connection preferences" dialog) and found that it seg. faults 
consistently on the first use of TVar::getName()
  whilst loading in the selected profile.  I rechecked on the release_30 
(post-"delta") preview and got precisely the same behaviour at the same point, 
for the latter the top end of the stack trace was:

  1   QString::QString                                        qstring.h      
898  0x467a1a       
  2   TVar::getName                                           TVar.cpp       68 
  0x74784d       
  3   VarUnit::shortVarName                                   VarUnit.cpp    
153  0x74974a       
  4   VarUnit::addSavedVar                                    VarUnit.cpp    
189  0x749d1d       
  5   XMLimport::readVariableGroup                            XMLimport.cpp  
240  0x7579a6       
  6   XMLimport::readVariablePackage                          XMLimport.cpp  
293  0x757e3c       
  7   XMLimport::readPackage                                  XMLimport.cpp  
588  0x759b72       
  8   XMLimport::importPackage                                XMLimport.cpp  
146  0x756f84       
  9   mudlet::doAutoLogin                                     mudlet.cpp     
2152 0x5fabd1       
  10  mudlet::startAutoLogin                                  mudlet.cpp     
2119 0x5fa57d       
  11  mudlet::qt_static_metacall                              moc_mudlet.cpp 
300  0x76e4d3       
  ... <More>                                                                    
                 

  At 3 we have:

  QStringList VarUnit::shortVarName(TVar * var){
      QStringList names;
      if (!var || var->getName() == "_G"){
          names << "";
          return names;
      }
      names << var->getName();
      TVar * p = var->getParent();
  ==> while (p && p->getName() != "_G"){ <== Where crash is happening
          names.insert(0,p->getName());
          p = p->getParent();
      }
      return names;
  }

  and looking in the debugger p, although non-zero {and thus passing the first 
test in the while(...)}
  it is NOT a valid entity, i.e. the preceding var->getParent() is NOT 
producing a valid value.

  As this is a regression (it disables autologin) it must be rated at least a 
"High" priority item only the fact that the ability to start a profile 
automatically is a useful rather than an essential feature stops this being a 
"Critical" - as well as indicating how many users (none at all)
  seem to be using it for the latest code versions.  I will investigate further 
and try and triage what introduced it, but I expect some re-factoring has 
eliminated some initialization step that is needed when auto-login is used but 
is not encountered otherwise...!

To manage notifications about this bug go to:
https://bugs.launchpad.net/mudlet/+bug/1624720/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mudlet-makers
Post to     : mudlet-makers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~mudlet-makers
More help   : https://help.launchpad.net/ListHelp

Reply via email to