DaemonManager: check monerod binary, error details on start failure

This commit is contained in:
xiphon 2020-02-04 23:27:48 +00:00
parent 6de8547047
commit 0629f06156
3 changed files with 11 additions and 5 deletions

View file

@ -708,14 +708,14 @@ ApplicationWindow {
currentWallet.connected(true);
}
function onDaemonStartFailure(){
function onDaemonStartFailure(error) {
console.log("daemon start failed");
hideProcessingSplash();
// resume refresh
currentWallet.startRefresh();
daemonRunning = false;
informationPopup.title = qsTr("Daemon failed to start") + translationManager.emptyString;
informationPopup.text = qsTr("Please check your wallet and daemon log for errors. You can also try to start %1 manually.").arg((isWindows)? "monerod.exe" : "monerod")
informationPopup.text = error + ".\n\n" + qsTr("Please check your wallet and daemon log for errors. You can also try to start %1 manually.").arg((isWindows)? "monerod.exe" : "monerod")
informationPopup.icon = StandardIcon.Critical
informationPopup.onCloseCallback = null
informationPopup.open();

View file

@ -63,6 +63,12 @@ DaemonManager *DaemonManager::instance(const QStringList *args)
bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const QString &dataDir, const QString &bootstrapNodeAddress, bool noSync /* = false*/)
{
if (!QFileInfo(m_monerod).isFile())
{
emit daemonStartFailure("\"" + QDir::toNativeSeparators(m_monerod) + "\" " + tr("executable is missing"));
return false;
}
// prepare command line arguments and pass to monerod
QStringList arguments;
@ -130,7 +136,7 @@ bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const
if (!started) {
qDebug() << "Daemon start error: " + m_daemon->errorString();
emit daemonStartFailure();
emit daemonStartFailure(m_daemon->errorString());
return false;
}
@ -140,7 +146,7 @@ bool DaemonManager::start(const QString &flags, NetworkType::Type nettype, const
emit daemonStarted();
m_noSync = noSync;
} else {
emit daemonStartFailure();
emit daemonStartFailure(tr("Timed out, local node is not responding after %1 seconds").arg(DAEMON_START_TIMEOUT_SECONDS));
}
});

View file

@ -64,7 +64,7 @@ private:
signals:
void daemonStarted() const;
void daemonStopped() const;
void daemonStartFailure() const;
void daemonStartFailure(const QString &error) const;
void daemonConsoleUpdated(QString message) const;
public slots: