Windows GUI Autoupdate killed my node

Good morning

Well after the last updates that always didnt restart my node, the last one 1.14.4 killed everything. The Node cant be started anymore:

2020-10-12T08:09:18.850+0200 INFO db.migration Database Version {“version”: 45}
2020-10-12T08:09:19.866+0200 FATAL Unrecoverable error {“error”: “Error during preflight check for storagenode databases: preflight: database “bandwidth”: expected schema does not match actual: &dbschema.Schema{\n- \tTables: *dbschema.Table{\n- \t\t(\n- \t\t\ts”""\n- \t\t\tName: bandwidth_usage\n- \t\t\tColumns:\n- \t\t\t\tName: action\n- \t\t\t\tType: INTEGER\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: amount\n- \t\t\t\tType: BIGINT\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: created_at\n- \t\t\t\tType: TIMESTAMP\n- \t\t\t\tNullable: false\n- \t\t\t… // 10 elided lines\n- \t\t\ts"""\n- \t\t),\n- \t\t(\n- \t\t\ts"""\n- \t\t\tName: bandwidth_usage_rollups\n- \t\t\tColumns:\n- \t\t\t\tName: action\n- \t\t\t\tType: INTEGER\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: amount\n- \t\t\t\tType: BIGINT\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: interval_start\n- \t\t\t\tType: TIMESTAMP\n- \t\t\t\tNullable: false\n- \t\t\t… // 10 elided lines\n- \t\t\ts"""\n- \t\t),\n- \t},\n+ \tTables: nil,\n- \tIndexes: *dbschema.Index{\n- \t\tsIndex<Table: bandwidth_usage, Name: idx_bandwidth_usage_created, Columns: created_at, Unique: false, Partial: \"\">,\n- \t\tsIndex<Table: bandwidth_usage, Name: idx_bandwidth_usage_satellite, Columns: satellite_id, Unique: false, Partial: \"\">,\n- \t},\n+ \tIndexes: nil,\n }\n\n\tstorj.io/storj/storagenode/storagenodedb.(*DB).Preflight:424\n\tmain.cmdRun:199\n\tstorj.io/private/process.cleanup.func1.4:362\n\tstorj.io/private/process.cleanup.func1:380\n\tgithub.com/spf13/cobra.(*Command).execute:842\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:950\n\tgithub.com/spf13/cobra.(*Command).Execute:887\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.Exec:65\n\tmain.(*service).Execute.func1:66\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57", “errorVerbose”: “Error during preflight check for storagenode databases: preflight: database “bandwidth”: expected schema does not match actual: &dbschema.Schema{\n- \tTables: *dbschema.Table{\n- \t\t(\n- \t\t\ts”""\n- \t\t\tName: bandwidth_usage\n- \t\t\tColumns:\n- \t\t\t\tName: action\n- \t\t\t\tType: INTEGER\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: amount\n- \t\t\t\tType: BIGINT\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: created_at\n- \t\t\t\tType: TIMESTAMP\n- \t\t\t\tNullable: false\n- \t\t\t… // 10 elided lines\n- \t\t\ts"""\n- \t\t),\n- \t\t(\n- \t\t\ts"""\n- \t\t\tName: bandwidth_usage_rollups\n- \t\t\tColumns:\n- \t\t\t\tName: action\n- \t\t\t\tType: INTEGER\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: amount\n- \t\t\t\tType: BIGINT\n- \t\t\t\tNullable: false\n- \t\t\t\tDefault: “”\n- \t\t\t\tReference: nil\n- \t\t\t\tName: interval_start\n- \t\t\t\tType: TIMESTAMP\n- \t\t\t\tNullable: false\n- \t\t\t… // 10 elided lines\n- \t\t\ts"""\n- \t\t),\n- \t},\n+ \tTables: nil,\n- \tIndexes: *dbschema.Index{\n- \t\tsIndex<Table: bandwidth_usage, Name: idx_bandwidth_usage_created, Columns: created_at, Unique: false, Partial: \"\">,\n- \t\tsIndex<Table: bandwidth_usage, Name: idx_bandwidth_usage_satellite, Columns: satellite_id, Unique: false, Partial: \"\">,\n- \t},\n+ \tIndexes: nil,\n }\n\n\tstorj.io/storj/storagenode/storagenodedb.(*DB).Preflight:424\n\tmain.cmdRun:199\n\tstorj.io/private/process.cleanup.func1.4:362\n\tstorj.io/private/process.cleanup.func1:380\n\tgithub.com/spf13/cobra.(*Command).execute:842\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:950\n\tgithub.com/spf13/cobra.(*Command).Execute:887\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.Exec:65\n\tmain.(*service).Execute.func1:66\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57\n\tmain.cmdRun:201\n\tstorj.io/private/process.cleanup.func1.4:362\n\tstorj.io/private/process.cleanup.func1:380\n\tgithub.com/spf13/cobra.(*Command).execute:842\n\tgithub.com/spf13/cobra.(*Command).ExecuteC:950\n\tgithub.com/spf13/cobra.(*Command).Execute:887\n\tstorj.io/private/process.ExecWithCustomConfig:88\n\tstorj.io/private/process.Exec:65\n\tmain.(*service).Execute.func1:66\n\tgolang.org/x/sync/errgroup.(*Group).Go.func1:57"}

Anyone knows what i should do or is everything lost now?`
Thank you

This is Database error try this

looks like Bandwidth database got currapted.

I checked every *.db file and all say “ok”. The error is still there cant start it. I guess it wont matter soon anymore since I will get disqualified?

try to rename bandwidth db and make new. it can help.
As i know storagenode dont use bandwidth db any more.

@Alexey can you help? Is it some not removed option? why storagenode make preflite check on bandwidth db if it not use it anymore? Or i mistaken somewhere?

Bandwidth.db is still being used. Only orders.db has been replaced by files.

When I delete it, it wont start. I see in taskmanager that it instatly shuts down again. After putting it back, nothing changed and it closes itself after posting the same error message.

Just to show you: grafik

I got that on every .db

you need to recreate bandwidth db.

I will happily do that as fast as possible if you tell me how - I really dont want to loose my node, eventhough it is only 3 months old :frowning:

here is solution

I would love too but I dont run docker, I run windows GUI

What I did is open:.
\sqlite3.exe
open bandwidth.db

CREATE TABLE bandwidth_usage (
                                                satellite_id  BLOB    NOT NULL,
                                                action        INTEGER NOT NULL,
                                                amount        BIGINT  NOT NULL,
                                                created_at    TIMESTAMP NOT NULL
                                        );
CREATE INDEX idx_bandwidth_usage_satellite ON bandwidth_usage(satellite_id);
CREATE INDEX idx_bandwidth_usage_created   ON bandwidth_usage(created_at);
CREATE TABLE bandwidth_usage_rollups (
                                                                                interval_start  TIMESTAMP NOT NULL,
                                                                                satellite_id    BLOB    NOT NULL,
                                                                                action          INTEGER NOT NULL,
                                                                                amount          BIGINT  NOT NULL,
                                                                                PRIMARY KEY ( interval_start, satellite_id, action )
                                                                        );
.exit

but still the same error

use https://sqlitebrowser.org/dl/
there can create db with sintext abouth

I have absolutly no idea what I did, but that worked out when I pasted everything line by line:
I went to my sqlite3 folder then:

.\sqlite3.exe
open bandwidth.db

CREATE TABLE bandwidth_usage (
                                                satellite_id  BLOB    NOT NULL,
                                                action        INTEGER NOT NULL,
                                                amount        BIGINT  NOT NULL,
                                                created_at    TIMESTAMP NOT NULL
                                        );
CREATE INDEX idx_bandwidth_usage_satellite ON bandwidth_usage(satellite_id);
CREATE INDEX idx_bandwidth_usage_created   ON bandwidth_usage(created_at);
CREATE TABLE bandwidth_usage_rollups (
                                                                                interval_start  TIMESTAMP NOT NULL,
                                                                                satellite_id    BLOB    NOT NULL,
                                                                                action          INTEGER NOT NULL,
                                                                                amount          BIGINT  NOT NULL,
                                                                                PRIMARY KEY ( interval_start, satellite_id, action )
                                                                        );
.exit

copied the (far bigger my backuped one was 4 kb this one is 40 kb) bandwidth.db over to the folder and it restarted!

The node starts again. Was in this .db file something that could harm my node or I am fine to continue?
I am now on v1.14.7 - I hope this auto update problems are solved now :frowning:

Thank you very much!

It just have a bandwidth usage stat for your node. With a clean database you just lost that stat. It is affect the view on the dashboard and estimation of payout could be wrong now. But it doesn’t affect your payout or ability to work.

Perfect thank you for that info.

That is not a big deal compared to lose half a TB and 3 months of vesting!
The payout amount anyway didnt show exact figures!

Thank you Alexey!

1 Like