Skip to content

Commit

Permalink
Rename StoreUnavailable error variant to ServerBlockstoreUnavailable
Browse files Browse the repository at this point in the history
  • Loading branch information
vxgmichel committed Feb 16, 2025
1 parent 9e300e6 commit bcc5046
Show file tree
Hide file tree
Showing 18 changed files with 48 additions and 40 deletions.
10 changes: 5 additions & 5 deletions bindings/electron/src/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2469,12 +2469,12 @@ export interface WorkspaceFdReadErrorOffline {
tag: "Offline"
error: string
}
export interface WorkspaceFdReadErrorStopped {
tag: "Stopped"
export interface WorkspaceFdReadErrorServerBlockstoreUnavailable {
tag: "ServerBlockstoreUnavailable"
error: string
}
export interface WorkspaceFdReadErrorStoreUnavailable {
tag: "StoreUnavailable"
export interface WorkspaceFdReadErrorStopped {
tag: "Stopped"
error: string
}
export type WorkspaceFdReadError =
Expand All @@ -2486,8 +2486,8 @@ export type WorkspaceFdReadError =
| WorkspaceFdReadErrorNoRealmAccess
| WorkspaceFdReadErrorNotInReadMode
| WorkspaceFdReadErrorOffline
| WorkspaceFdReadErrorServerBlockstoreUnavailable
| WorkspaceFdReadErrorStopped
| WorkspaceFdReadErrorStoreUnavailable


// WorkspaceFdResizeError
Expand Down
10 changes: 5 additions & 5 deletions bindings/electron/src/meths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11596,13 +11596,13 @@ fn variant_workspace_fd_read_error_rs_to_js<'a>(
let js_tag = JsString::try_new(cx, "WorkspaceFdReadErrorOffline").or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::WorkspaceFdReadError::Stopped { .. } => {
let js_tag = JsString::try_new(cx, "WorkspaceFdReadErrorStopped").or_throw(cx)?;
libparsec::WorkspaceFdReadError::ServerBlockstoreUnavailable { .. } => {
let js_tag = JsString::try_new(cx, "WorkspaceFdReadErrorServerBlockstoreUnavailable")
.or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
libparsec::WorkspaceFdReadError::StoreUnavailable { .. } => {
let js_tag =
JsString::try_new(cx, "WorkspaceFdReadErrorStoreUnavailable").or_throw(cx)?;
libparsec::WorkspaceFdReadError::Stopped { .. } => {
let js_tag = JsString::try_new(cx, "WorkspaceFdReadErrorStopped").or_throw(cx)?;
js_obj.set(cx, "tag", js_tag)?;
}
}
Expand Down
2 changes: 1 addition & 1 deletion bindings/generator/api/workspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@ class WorkspaceFdReadError(ErrorVariant):
class Offline:
pass

class StoreUnavailable:
class ServerBlockstoreUnavailable:
pass

class Stopped:
Expand Down
8 changes: 4 additions & 4 deletions bindings/web/src/meths.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12866,18 +12866,18 @@ fn variant_workspace_fd_read_error_rs_to_js(
&"WorkspaceFdReadErrorOffline".into(),
)?;
}
libparsec::WorkspaceFdReadError::Stopped { .. } => {
libparsec::WorkspaceFdReadError::ServerBlockstoreUnavailable { .. } => {
Reflect::set(
&js_obj,
&"tag".into(),
&"WorkspaceFdReadErrorStopped".into(),
&"WorkspaceFdReadErrorServerBlockstoreUnavailable".into(),
)?;
}
libparsec::WorkspaceFdReadError::StoreUnavailable { .. } => {
libparsec::WorkspaceFdReadError::Stopped { .. } => {
Reflect::set(
&js_obj,
&"tag".into(),
&"WorkspaceFdReadErrorStoreUnavailable".into(),
&"WorkspaceFdReadErrorStopped".into(),
)?;
}
}
Expand Down
12 changes: 6 additions & 6 deletions client/src/plugins/libparsec/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2886,8 +2886,8 @@ export enum WorkspaceFdReadErrorTag {
NoRealmAccess = 'WorkspaceFdReadErrorNoRealmAccess',
NotInReadMode = 'WorkspaceFdReadErrorNotInReadMode',
Offline = 'WorkspaceFdReadErrorOffline',
ServerBlockstoreUnavailable = 'WorkspaceFdReadErrorServerBlockstoreUnavailable',
Stopped = 'WorkspaceFdReadErrorStopped',
StoreUnavailable = 'WorkspaceFdReadErrorStoreUnavailable',
}

export interface WorkspaceFdReadErrorBadFileDescriptor {
Expand Down Expand Up @@ -2922,12 +2922,12 @@ export interface WorkspaceFdReadErrorOffline {
tag: WorkspaceFdReadErrorTag.Offline
error: string
}
export interface WorkspaceFdReadErrorStopped {
tag: WorkspaceFdReadErrorTag.Stopped
export interface WorkspaceFdReadErrorServerBlockstoreUnavailable {
tag: WorkspaceFdReadErrorTag.ServerBlockstoreUnavailable
error: string
}
export interface WorkspaceFdReadErrorStoreUnavailable {
tag: WorkspaceFdReadErrorTag.StoreUnavailable
export interface WorkspaceFdReadErrorStopped {
tag: WorkspaceFdReadErrorTag.Stopped
error: string
}
export type WorkspaceFdReadError =
Expand All @@ -2939,8 +2939,8 @@ export type WorkspaceFdReadError =
| WorkspaceFdReadErrorNoRealmAccess
| WorkspaceFdReadErrorNotInReadMode
| WorkspaceFdReadErrorOffline
| WorkspaceFdReadErrorServerBlockstoreUnavailable
| WorkspaceFdReadErrorStopped
| WorkspaceFdReadErrorStoreUnavailable

// WorkspaceFdResizeError
export enum WorkspaceFdResizeErrorTag {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ async fn inbound_sync_monitor_loop(realm_id: VlobID, mut io: impl InboundSyncMan
match outcome {
Ok(()) => break,
Err(err) => match err {
WorkspaceSyncError::Offline(_) | WorkspaceSyncError::StoreUnavailable => {
WorkspaceSyncError::Offline(_) | WorkspaceSyncError::ServerBlockstoreUnavailable => {
io.event_bus_wait_server_reconnect().await;
continue;
},
Expand Down Expand Up @@ -290,7 +290,7 @@ async fn inbound_sync_monitor_loop(realm_id: VlobID, mut io: impl InboundSyncMan
break;
}
Err(err) => match err {
WorkspaceSyncError::Offline(_) | WorkspaceSyncError::StoreUnavailable => {
WorkspaceSyncError::Offline(_) | WorkspaceSyncError::ServerBlockstoreUnavailable => {
io.event_bus_wait_server_reconnect().await;
continue;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ fn task_future_factory(
log::error!("Workspace {realm_id}: stopping due to unexpected error: {err:?}");
return;
}
WorkspaceSyncError::StoreUnavailable => {
WorkspaceSyncError::ServerBlockstoreUnavailable => {
// Re-enqueue to retry later
let entry_id = $entry_id;
log::info!("Workspace {realm_id}: {entry_id} sync failed due to server block store unavailable, aborting sync and waiting {}s", SERVER_STORE_UNAVAILABLE_WAIT.num_seconds());
Expand Down
4 changes: 2 additions & 2 deletions libparsec/crates/client/src/server_fetch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ pub enum ServerFetchBlockError {
#[error("Not allowed to access this realm")]
NoRealmAccess,
#[error("Block access is temporary unavailable on the server")]
StoreUnavailable,
ServerBlockstoreUnavailable,
#[error(transparent)]
InvalidBlockAccess(#[from] Box<InvalidBlockAccessError>),
#[error(transparent)]
Expand Down Expand Up @@ -218,7 +218,7 @@ pub(crate) async fn server_fetch_block(
block,
} => Ok((needed_realm_certificate_timestamp, key_index, block)),
// Expected errors
Rep::StoreUnavailable => Err(ServerFetchBlockError::StoreUnavailable),
Rep::StoreUnavailable => Err(ServerFetchBlockError::ServerBlockstoreUnavailable),
Rep::AuthorNotAllowed => Err(ServerFetchBlockError::NoRealmAccess),
Rep::RealmNotFound => Err(ServerFetchBlockError::RealmNotFound),
Rep::BlockNotFound => Err(ServerFetchBlockError::BlockNotFound),
Expand Down
2 changes: 1 addition & 1 deletion libparsec/crates/client/src/workspace/history/fd_read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ pub async fn fd_read(
WorkspaceHistoryFdReadError::Offline(e)
}
WorkspaceHistoryGetBlockError::Stopped
| WorkspaceHistoryGetBlockError::StoreUnavailable => {
| WorkspaceHistoryGetBlockError::ServerBlockstoreUnavailable => {
WorkspaceHistoryFdReadError::Stopped
}
WorkspaceHistoryGetBlockError::NoRealmAccess => {
Expand Down
6 changes: 4 additions & 2 deletions libparsec/crates/client/src/workspace/store/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ pub(super) enum ReadChunkOrBlockError {
#[error("Cannot communicate with the server: {0}")]
Offline(#[from] ConnectionError),
#[error("Block access is temporary unavailable on the server")]
StoreUnavailable,
ServerBlockstoreUnavailable,
#[error("Component has stopped")]
Stopped,
#[error("Chunk doesn't exist")]
Expand Down Expand Up @@ -665,7 +665,9 @@ impl WorkspaceStore {
.map_err(|err| match err {
ServerFetchBlockError::Stopped => ReadChunkOrBlockError::Stopped,
ServerFetchBlockError::Offline(e) => ReadChunkOrBlockError::Offline(e),
ServerFetchBlockError::StoreUnavailable => ReadChunkOrBlockError::StoreUnavailable,
ServerFetchBlockError::ServerBlockstoreUnavailable => {
ReadChunkOrBlockError::ServerBlockstoreUnavailable
}
ServerFetchBlockError::BlockNotFound => {
// This is unexpected: we got a block ID from a file manifest,
// but this ID points to nothing according to the server :/
Expand Down
6 changes: 3 additions & 3 deletions libparsec/crates/client/src/workspace/transactions/fd_read.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ pub enum WorkspaceFdReadError {
#[error("Cannot communicate with the server: {0}")]
Offline(#[from] ConnectionError),
#[error("Block access is temporary unavailable on the server")]
StoreUnavailable,
ServerBlockstoreUnavailable,
#[error("Component has stopped")]
Stopped,
#[error("File descriptor not found")]
Expand Down Expand Up @@ -92,8 +92,8 @@ pub async fn fd_read(
.await
.map_err(|err| match err {
ReadChunkOrBlockError::Offline(e) => WorkspaceFdReadError::Offline(e),
ReadChunkOrBlockError::StoreUnavailable => {
WorkspaceFdReadError::StoreUnavailable
ReadChunkOrBlockError::ServerBlockstoreUnavailable => {
WorkspaceFdReadError::ServerBlockstoreUnavailable
}
ReadChunkOrBlockError::Stopped => WorkspaceFdReadError::Stopped,
ReadChunkOrBlockError::NoRealmAccess => WorkspaceFdReadError::NoRealmAccess,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ pub enum WorkspaceSyncError {
#[error("Cannot communicate with the server: {0}")]
Offline(#[from] ConnectionError),
#[error("Block access is temporary unavailable on the server")]
StoreUnavailable,
ServerBlockstoreUnavailable,
#[error("Client has stopped")]
Stopped,
#[error("Not allowed to access this realm")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -653,7 +653,9 @@ async fn do_next_reshape_operation(
Err(err) => {
return Err(match err {
ReadChunkOrBlockError::Offline(e) => WorkspaceSyncError::Offline(e),
ReadChunkOrBlockError::StoreUnavailable => WorkspaceSyncError::StoreUnavailable,
ReadChunkOrBlockError::ServerBlockstoreUnavailable => {
WorkspaceSyncError::ServerBlockstoreUnavailable
}
ReadChunkOrBlockError::Stopped => WorkspaceSyncError::Stopped,
// TODO: manifest seems to contain invalid data (or the server is lying to us)
ReadChunkOrBlockError::ChunkNotFound => todo!(),
Expand Down Expand Up @@ -799,7 +801,7 @@ async fn upload_blocks(
| Rep::BlockAlreadyExists => (),
Rep::AuthorNotAllowed => return Err(WorkspaceSyncError::NotAllowed),
// Nothing we can do if server is not ready to store our data, retry later
Rep::StoreUnavailable => return Err(WorkspaceSyncError::StoreUnavailable),
Rep::StoreUnavailable => return Err(WorkspaceSyncError::ServerBlockstoreUnavailable),
// A key rotation occurred concurrently, should poll for new certificates and retry
Rep::BadKeyIndex { last_realm_certificate_timestamp } => {
let latest_known_timestamps = PerTopicLastTimestamps::new_for_realm(ops.realm_id, last_realm_certificate_timestamp);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pub enum DataAccessFetchBlockError {
#[error("Not allowed to access this realm")]
NoRealmAccess,
#[error("Block access is temporary unavailable on the server")]
StoreUnavailable,
ServerBlockstoreUnavailable,
#[error(transparent)]
InvalidBlockAccess(#[from] Box<InvalidBlockAccessError>),
#[error(transparent)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,9 @@ impl ServerDataAccess {
ServerFetchBlockError::RealmNotFound => DataAccessFetchBlockError::BlockNotFound,
ServerFetchBlockError::BlockNotFound => DataAccessFetchBlockError::BlockNotFound,
ServerFetchBlockError::NoRealmAccess => DataAccessFetchBlockError::NoRealmAccess,
ServerFetchBlockError::StoreUnavailable => DataAccessFetchBlockError::StoreUnavailable,
ServerFetchBlockError::ServerBlockstoreUnavailable => {
DataAccessFetchBlockError::ServerBlockstoreUnavailable
}
ServerFetchBlockError::InvalidBlockAccess(err) => {
DataAccessFetchBlockError::InvalidBlockAccess(err)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ pub async fn fd_read(
WorkspaceHistoryFdReadError::Offline(e)
}
WorkspaceHistoryStoreGetBlockError::Stopped
| WorkspaceHistoryStoreGetBlockError::StoreUnavailable => {
| WorkspaceHistoryStoreGetBlockError::ServerBlockstoreUnavailable => {
WorkspaceHistoryFdReadError::Stopped
}
WorkspaceHistoryStoreGetBlockError::NoRealmAccess => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1231,7 +1231,7 @@ impl fuser::Filesystem for Filesystem {
}
Err(err) => match err {
WorkspaceFdReadError::Offline(_) => reply.manual().error(libc::EHOSTUNREACH),
WorkspaceFdReadError::StoreUnavailable => reply.manual().error(libc::EHOSTUNREACH),
WorkspaceFdReadError::ServerBlockstoreUnavailable => reply.manual().error(libc::EHOSTUNREACH),
WorkspaceFdReadError::NotInReadMode => reply.manual().error(libc::EBADF),
WorkspaceFdReadError::NoRealmAccess => reply.manual().error(libc::EPERM),
WorkspaceFdReadError::Stopped
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,7 +643,9 @@ impl FileSystemInterface for ParsecFileSystemInterface {
.await
.map_err(|err| match err {
WorkspaceFdReadError::Offline(_) => STATUS_HOST_UNREACHABLE,
WorkspaceFdReadError::StoreUnavailable => STATUS_HOST_UNREACHABLE,
WorkspaceFdReadError::ServerBlockstoreUnavailable => {
STATUS_HOST_UNREACHABLE
}
WorkspaceFdReadError::NoRealmAccess => STATUS_ACCESS_DENIED,
WorkspaceFdReadError::Stopped => STATUS_NO_SUCH_DEVICE,
WorkspaceFdReadError::BadFileDescriptor => STATUS_INVALID_HANDLE,
Expand Down

0 comments on commit bcc5046

Please sign in to comment.