Skip to content

Commit

Permalink
cli: subcommands auto-migrate disk format
Browse files Browse the repository at this point in the history
  • Loading branch information
matthew-levan committed Jun 30, 2023
1 parent 4d35ba2 commit 8668d73
Showing 1 changed file with 11 additions and 26 deletions.
37 changes: 11 additions & 26 deletions pkg/vere/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1561,11 +1561,11 @@ _cw_info(c3_i argc, c3_c* argv[])
exit(1);
}

c3_d eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c);

fprintf(stderr, "\r\nurbit: %s at event %" PRIu64 "\r\n",
u3_Host.dir_c, eve_d);
u3_Host.dir_c, u3_Host.eve_d);

u3_disk_slog(log_u);
printf("\n");
Expand Down Expand Up @@ -1720,17 +1720,17 @@ _cw_cram(c3_i argc, c3_c* argv[])
exit(1);
}

c3_d eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock
c3_o ret_o;

fprintf(stderr, "urbit: cram: preparing\r\n");

if ( c3n == (ret_o = u3u_cram(u3_Host.dir_c, eve_d)) ) {
if ( c3n == (ret_o = u3u_cram(u3_Host.dir_c, u3_Host.eve_d)) ) {
fprintf(stderr, "urbit: cram: unable to jam state\r\n");
}
else {
fprintf(stderr, "urbit: cram: rock saved at event %" PRIu64 "\r\n", eve_d);
fprintf(stderr, "urbit: cram: rock saved at event %" PRIu64 "\r\n", u3_Host.eve_d);
}

// save even on failure, as we just did all the work of deduplication
Expand Down Expand Up @@ -1832,12 +1832,11 @@ _cw_queu(c3_i argc, c3_c* argv[])
exit(1);
}
else {
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock

fprintf(stderr, "urbit: queu: preparing\r\n");

u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);

// XX can spuriously fail do to corrupt memory-image checkpoint,
// need a u3m_half_boot equivalent
// workaround is to delete/move the checkpoint in case of corruption
Expand Down Expand Up @@ -1925,11 +1924,11 @@ _cw_meld(c3_i argc, c3_c* argv[])
exit(1);
}

u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock
c3_w pre_w;

u3C.wag_w |= u3o_hashless;
u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);

pre_w = u3a_open(u3R);
u3u_meld();
Expand Down Expand Up @@ -2090,9 +2089,9 @@ _cw_pack(c3_i argc, c3_c* argv[])
exit(1);
}

u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock

u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3a_print_memory(stderr, "urbit: pack: gained", u3m_pack());

u3m_save();
Expand Down Expand Up @@ -2246,6 +2245,7 @@ _cw_play(c3_i argc, c3_c* argv[])

// XX handle SIGTSTP so that the lockfile is not orphaned?
//
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c); // XX s/b try_aquire lock

// Handle SIGTSTP as if it was SIGINT.
Expand All @@ -2269,8 +2269,6 @@ _cw_play(c3_i argc, c3_c* argv[])
_cw_play_snap(log_u);
}

u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);

u3C.slog_f = _cw_play_slog;

{
Expand Down Expand Up @@ -2435,19 +2433,9 @@ _cw_chop(c3_i argc, c3_c* argv[])
}

// gracefully shutdown the pier if it's running
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c);

// note: this includes patch applications (if any)
u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);

// check if there's a *current* snapshot
if ( log_u->dun_d != u3A->eve_d ) {
fprintf(stderr, "chop: error: snapshot is out of date, please "
"start/shutdown your pier gracefully first\r\n");
fprintf(stderr, "chop: eve_d: %" PRIc3_d ", dun_d: %" PRIc3_d "\r\n", u3A->eve_d, log_u->dun_d);
exit(1);
}

// get latest epoch number prior to creating a new one
c3_d pre_d;
if ( c3n == u3_disk_epoc_last(log_u, &pre_d) ) {
Expand Down Expand Up @@ -2523,7 +2511,6 @@ _cw_chop(c3_i argc, c3_c* argv[])
// cleanup
u3_dire_free(ned_u);
u3_disk_exit(log_u);
u3m_stop();

// success
fprintf(stderr, "chop: event log truncation complete\r\n");
Expand Down Expand Up @@ -2580,11 +2567,9 @@ _cw_roll(c3_i argc, c3_c* argv[])
}

// gracefully shutdown the pier if it's running
u3_Host.eve_d = u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);
u3_disk* log_u = _cw_disk_init(u3_Host.dir_c);

// note: this includes patch applications (if any)
u3m_boot(u3_Host.dir_c, (size_t)1 << u3_Host.ops_u.lom_y);

// check if there's a *current* snapshot
if ( log_u->dun_d != u3A->eve_d ) {
fprintf(stderr, "roll: error: snapshot is out of date, please "
Expand Down

0 comments on commit 8668d73

Please sign in to comment.