Skip to content

Unable to start ftp: Write not multiple of tape block size #7

@VeryEvilHumna

Description

@VeryEvilHumna

Context:
Drive: HPE LTO-6 Ultrium 6250
HBA: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
Fedora Linux 43 (Server Edition) x86_64

$ sudo mt -f /dev/nst0 stsetoptions scsi2logical

$ sudo stfs serve ftp     -d /dev/nst0     -m ~/b60681.sqlite     -s pgp     --signature-identity ~/.stfs-pgp.priv     --signature-recipient ~/.stfs-pgp.pub     --signature-password password --compression zstandard     --cache-filesystem-type memory -v4

{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"select min(length(name) - length(replace(name, \"/\", \"\"))) as depth, name from headers where deleted != 1"}]}
{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"[]"}]}
{"time":1768316747,"level":"DEBUG","event":"FileSystem.InitializeIfEmpty","data":[{"rootPerm":511,"rootProposal":"/"}]}
{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"select min(length(name) - length(replace(name, \"/\", \"\"))) as depth, name from headers where deleted != 1"}]}
{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"[]"}]}
{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"DELETE FROM \"headers\";"}]}
{"time":1768316747,"level":"TRACE","event":"SQL Query","data":[{"query":"[]"}]}
{"time":1768316748,"level":"TRACE","event":"FileSystem.mknodeWithoutLocking","data":[{"initializing":true,"linkname":"","name":"/","overwrite":true,"perm":511}]}
{"time":1768316842,"level":"DEBUG","event":"Header write","data":[{"Type":"archive","Indexed":false,"Header":{"Record":-1,"Lastknownrecord":-1,"Block":-1,"Lastknownblock":-1,"Deleted":0,"Typeflag":53,"Name":"/","Linkname":"","Size":0,"Mode":511,"UID":0,"Gid":0,"Uname":"root","Gname":"0","Modtime":"2026-01-13T18:05:48.071311084+03:00","Accesstime":"0001-01-01T00:00:00Z","Changetime":"0001-01-01T00:00:00Z","Devmajor":0,"Devminor":0,"Paxrecords":"null","Format":4}}]}

Drive seeks to the end and back, it takes around 3 minutes and I don't think that's intentional behaviour


Error: write /dev/nst0: invalid argument
Usage:
  stfs serve ftp [flags]

Aliases:
  ftp, f

Flags:
  -w, --cache-dir string               Directory to use if dir cache is enabled (default "/tmp/stfs")
  -u, --cache-duration duration        Duration until cache is invalidated (default 1h0m0s)
  -n, --cache-filesystem-type string   File system cache to use (default , available are [ memory dir])
  -q, --cache-write-type string        Write cache to use (default file, available are [memory file]) (default "file")
  -l, --compression-level string       Compression level to use (default balanced, available are [fastest balanced smallest]) (default "balanced")
  -i, --encryption-identity string     Path to private key to decrypt with
  -p, --encryption-password string     Password for the private key to decrypt with
  -t, --encryption-recipient string    Path to public key of recipient to encrypt with
  -h, --help                           help for ftp
  -a, --laddr string                   Listen address (default ":1337")
  -j, --read-only                      Block all write operations
  -z, --record-size int                Amount of 512-bit blocks per record (default 20)
  -g, --signature-identity string      Path to private key to sign with
  -x, --signature-password string      Password for the private key to sign with
  -r, --signature-recipient string     Path to the public key to verify with

Global Flags:
  -c, --compression string   Compression format to use (default , available are [ gzip parallelgzip lz4 zstandard brotli bzip2 parallelbzip2])
  -d, --drive string         Tape or tar file to use (default "/dev/nst0")
  -e, --encryption string    Encryption format to use (default , available are [ age pgp])
  -m, --metadata string      Metadata database to use (default "/root/.local/share/stfs/var/lib/stfs/metadata.sqlite")
  -s, --signature string     Signature format to use (default , available are [ minisign pgp])
  -v, --verbose int          Verbosity level (default 2, available are [0 1 2 3 4]) (default 2)

2026/01/13 18:07:22 Error executing command: write /dev/nst0: invalid argument
panic: write /dev/nst0: invalid argument

goroutine 1 [running]:
main.main()
        /home/evil/stfs/cmd/stfs/main.go:12 +0xc5

journalctl:

kernel: st 6:0:0:0: [st0] Write not multiple of tape block size.

There is not enough context to this error or any logs suggesting where it could happen, so I hadn't been able to debug this issue myself

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions