Preflight check error input/output

Hello, could someone please advise what can i do to fix this? thanks

Error: Error during preflight check for storagenode databases: preflight: database “piece_expiration”: failed create test_table: disk I/O error: input/output error
storj.io/storj/storagenode/storagenodedb.(*DB).preflight:418
storj.io/storj/storagenode/storagenodedb.(*DB).Preflight:352
main.cmdRun:208
storj.io/private/process.cleanup.func1.4:363
storj.io/private/process.cleanup.func1:381
github.com/spf13/cobra.(*Command).execute:842
github.com/spf13/cobra.(*Command).ExecuteC:950
github.com/spf13/cobra.(*Command).Execute:887
storj.io/private/process.ExecWithCustomConfig:88
storj.io/private/process.ExecCustomDebug:70
main.main:385
runtime.main:204

Check your SATA or USB cable connecting the disk if it’s loose. If you are using USB 2, try USB 3. Change USB ports. Don’t forget to change USB or SATA cable just to rule out cable issues.

1 Like

And please, check your disk for errors.

1 Like

ok, i can see now, i’ve checked before this post and disk was OK, on next day was disk status SELF-TEST FAILED
trying to copy node to other drive, but looks like rsync had read error on that piece-expiration db… is there some way to fix or replace that db?

Yes. it may be fixed. Just copy blobs without an errors. The databases are not so important - you could lose a stat but will not lose data and thus the node could survive.

so if all other data will be ok, can i just delete that db and node should run?

You can delete this DB, but node would not start. You need to do some extra steps:

  1. Delete corrupted DB
  2. Move all remained DBs to the other place
  3. Start the node, it should re-create databases
  4. Stop the node
  5. Move databases from backup and replace all databases
  6. Start the node.
2 Likes

node back online, thank you

1 Like

Hello, can I do what you indicate if I have these 2 files with problems?

bandwidth.db
piece_expiration.db

You could try the procedure to fix malformed databases:

If it does not work, then yes you can try @Alexey’s steps above: