Skip to content

Missing db_path flag in the node subcommand #244

@GrapeBaBa

Description

@GrapeBaBa

There is no db_path flag in the node subcommand to set the DB path, it will cause second node start failed on same machine. And it exposes a double free issue when the error threw.

Sep-29 04:22:38.804 [info] (zeam): [database] Initializing RocksDB
Sep-29 04:22:38.810 [error] (zeam): [database] Failed to call RocksDB function: 'fn (mem.Allocator, []const u8, database.DBOptions, ?[]const database.ColumnFamilyDescription, *?data.Data) error{OutOfMemory,RocksDBOpen}!struct { database.DB, []const database.ColumnFamily }', error: error.RocksDBOpen - IO error: While lock file: ./data/rocksdb/LOCK: Resource temporarily unavailable
thread 7666796 panic: integer overflow
/Users/kaichen/.cache/zig/p/rocksdb-9.7.4-z_CUTmO5AAD0CQ2ZvShSDZHjC2x9MKrTnpvbNAIU7ah0/src/database.zig:455:13: 0x1133294c8 in handle__anon_1654769 (zeam)
            return err;
            ^
/Users/kaichen/.cache/zig/p/rocksdb-9.7.4-z_CUTmO5AAD0CQ2ZvShSDZHjC2x9MKrTnpvbNAIU7ah0/src/database.zig:50:23: 0x11329cb20 in open (zeam)
            break :db try ch.handle(rdb.rocksdb_open_column_families(
                      ^
/Users/kaichen/Documents/projects/zeam/pkgs/database/src/rocksdb.zig:509:9: 0x113206ec3 in callRocksDB__anon_1639947 (zeam)
        return e;
        ^
/Users/kaichen/Documents/projects/zeam/pkgs/database/src/rocksdb.zig:59:15: 0x1131e3c8b in open (zeam)
            = try callRocksDB(logger, rocksdb.DB.open, .{
              ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/debug.zig:736:73: 0x11364fa86 in writeStackTrace__anon_1727855 (zeam)
        try printSourceAtAddress(debug_info, out_stream, return_address - 1, tty_config);
                                                                        ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/builtin.zig:56:34: 0x11364fe47 in format__anon_1727846 (zeam)
        std.debug.writeStackTrace(self, writer, debug_info, tty_config) catch |err| {
                                 ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/fmt.zig:515:32: 0x11360cf3a in formatType__anon_1720982 (zeam)
        return try value.format(actual_fmt, options, writer);
                               ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/fmt.zig:193:23: 0x11360ce19 in format__anon_1720859 (zeam)
        try formatType(
                      ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/io/Writer.zig:24:26: 0x1135b1d50 in print__anon_1710368 (zeam)
    return std.fmt.format(self, format, args);
                         ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/io.zig:312:47: 0x1134d2779 in defaultLog__anon_1688104 (zeam)
            return @errorCast(self.any().print(format, args));
                                              ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/log.zig:125:22: 0x1133a8828 in log__anon_1656703 (zeam)
    std.options.logFn(message_level, scope, format, args);
                     ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/log.zig:175:16: 0x1132cb688 in err__anon_1651453 (zeam)
            log(.err, scope, format, args);
               ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/heap/debug_allocator.zig:525:20: 0x113228a0f in reportDoubleFree (zeam)
            log.err("Double free detected. Allocation: {} First free: {} Second free: {}", .{
                   ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/heap/debug_allocator.zig:885:37: 0x1131ef4d4 in free (zeam)
                    reportDoubleFree(
                                    ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/mem/Allocator.zig:147:25: 0x113190427 in free__anon_22169 (zeam)
    return a.vtable.free(a.ptr, memory, alignment, ret_addr);
                        ^
/Users/kaichen/Documents/projects/zeam/pkgs/cli/src/node.zig:96:32: 0x1131e3184 in init (zeam)
        errdefer allocator.free(network_name);
                               ^
/Users/kaichen/Documents/projects/zeam/pkgs/cli/src/main.zig:380:31: 0x1131ebbf8 in main (zeam)
            try lean_node.init(allocator, &start_options);
                              ^
/Users/kaichen/.local/share/zigup/0.14.1/files/lib/std/start.zig:660:37: 0x1131edd8e in main (zeam)
            const result = root.main() catch |err| {
                                    ^
???:?:?: 0x7ff80ea2d52f in ??? (???)
Unwind information for `???:0x7ff80ea2d52f` was not available, trace may be incomplete

???:?:?: 0x0 in ??? (???)
zsh: abort      ./zig-out/bin/zeam node --custom_genesis ~/genesis --node_id 1 --network_dir

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions