Previously when after being unable to open enough segments:
```
ERROR 2025-09-29 11:21:53,993 [shard 2:main] seastore_epm -
ExtentPlacementManager::open_for_write: Not enough EMPTY segments!
Consider increasing the device size (needed 6 got 2)
```
The abort message was:
```
ERROR 2025-09-29 11:21:53,994 [shard 2:main] osd -
/home/matan/ceph/src/crimson/common/errorator.h:1319 : In function
'crimson::ct_error::assert_all::operator()<const ..., abort()
Invalid error in mount_managers: Input/output error
```
Where it would have been easier to understand the issue with:
```
ERROR 2025-09-29 11:36:57,901 [shard 2:main] osd -
/home/matan/ceph/src/crimson/common/errorator.h:1319 : In function
'crimson::ct_error::assert_all::operator()<const ..., abort()
Invalid error in mount_managers: No space left on device
```
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
ERROR("Not enough EMPTY segments! "
"Consider increasing the device size (needed {} got {})",
total_writers_num, segments->get_num_empty());
- // TODO: open_ertr should be expanded to enospc
- co_await open_ertr::future<>(crimson::ct_error::input_output_error::make());
+ co_await open_ertr::future<>(crimson::ct_error::enospc::make());
}
DEBUG("opening DATA writers", num_devices);
virtual writer_stats_t get_stats() const = 0;
- using open_ertr = base_ertr;
+ using open_ertr = base_ertr::extend<
+ crimson::ct_error::enospc>;
virtual open_ertr::future<> open() = 0;
virtual paddr_t alloc_paddr(extent_len_t length) = 0;
shard_stats_t& shard_stats);
/// Writes initial metadata to disk
- using mkfs_ertr = base_ertr;
+ using mkfs_ertr = base_ertr::extend<
+ crimson::ct_error::enospc>;
mkfs_ertr::future<> mkfs();
/// Reads initial metadata from disk
- using mount_ertr = base_ertr;
+ using mount_ertr = base_ertr::extend<
+ crimson::ct_error::enospc>;
mount_ertr::future<> mount();
/// Closes transaction_manager