v1.0.0-rc.145 (#55)
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m26s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m26s
Build Packages / build:rpm (rocky8) (push) Successful in 17m23s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m32s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m16s
Build Packages / build:rpm (rocky9) (push) Successful in 12m45s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m58s
Build Packages / XDS test (durin plugin) (push) Successful in 11m22s
Build Packages / DIALS test (push) Successful in 14m28s
Build Packages / Generate python client (push) Successful in 1m1s
Build Packages / Build documentation (push) Successful in 2m40s
Build Packages / Create release (push) Has been skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 10m52s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m2s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m25s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m49s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 11m34s
Build Packages / Unit tests (push) Successful in 44m51s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m26s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m26s
Build Packages / build:rpm (rocky8) (push) Successful in 17m23s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m32s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 18m16s
Build Packages / build:rpm (rocky9) (push) Successful in 12m45s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m58s
Build Packages / XDS test (durin plugin) (push) Successful in 11m22s
Build Packages / DIALS test (push) Successful in 14m28s
Build Packages / Generate python client (push) Successful in 1m1s
Build Packages / Build documentation (push) Successful in 2m40s
Build Packages / Create release (push) Has been skipped
Build Packages / XDS test (neggia plugin) (push) Successful in 10m52s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m2s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 17m25s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m49s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 11m34s
Build Packages / Unit tests (push) Successful in 44m51s
This is an UNSTABLE release. The release has significant modifications for HDF5 writing logic - in case of troubles go back to 1.0.0-rc.144. * **Default HDF5 writing mode is with VDS, not soft-links** - this improves DIALS compatibility and makes format more future-proof, NXmx legacy format might be phased-out in the future. * XDS plugin: Improve performance of VDS reading. * jfjoch_writer: Significant improvement on how file systems I/O are handled through a dedicated pass-through VFD. * jfjoch_writer: Clean-up of HDF5 routines to better handle issues. Reviewed-on: #55
This commit was merged in pull request #55.
This commit is contained in:
+22
-4
@@ -173,26 +173,40 @@ void StreamWriter::ProcessEndMessage() {
|
||||
NotifyTcpAck(TCPFrameType::END, !error_state, error_state,
|
||||
error_state ? TCPAckCode::EndFailed : TCPAckCode::None,
|
||||
error_state ? err : "");
|
||||
|
||||
// To exit main image loop in CollectImages(), state must be finalized
|
||||
state = StreamWriterState::Finalized;
|
||||
}
|
||||
|
||||
void StreamWriter::FinalizeDataCollection() {
|
||||
end_time = std::chrono::system_clock::now();
|
||||
|
||||
bool finalize_error = false;
|
||||
|
||||
if (file_writer && (state != StreamWriterState::Error)) {
|
||||
try {
|
||||
hdf5_data_file_statistics = file_writer->Finalize();
|
||||
} catch (JFJochException &e) {
|
||||
} catch (const JFJochException &e) {
|
||||
finalize_error = true;
|
||||
state = StreamWriterState::Error;
|
||||
err = e.what();
|
||||
logger.ErrorException(e);
|
||||
logger.Error("Error finalizing writing - switching to error state");
|
||||
} catch (const std::exception &e) {
|
||||
finalize_error = true;
|
||||
state = StreamWriterState::Error;
|
||||
err = e.what();
|
||||
logger.Error("Error finalizing writing - switching to error state: {}", e.what());
|
||||
}
|
||||
} else {
|
||||
hdf5_data_file_statistics.clear();
|
||||
}
|
||||
|
||||
file_writer.reset();
|
||||
logger.Info("Data writing finished");
|
||||
state = StreamWriterState::Finalized;
|
||||
|
||||
if (!finalize_error && state != StreamWriterState::Error)
|
||||
state = StreamWriterState::Finalized;
|
||||
}
|
||||
|
||||
void StreamWriter::CollectImages() {
|
||||
@@ -206,9 +220,13 @@ void StreamWriter::CollectImages() {
|
||||
if (image_puller_output.tcp_msg &&
|
||||
static_cast<TCPFrameType>(image_puller_output.tcp_msg->header.type) == TCPFrameType::CANCEL) {
|
||||
logger.Warning("Received TCP CANCEL, finalizing data collection");
|
||||
if (state != StreamWriterState::Idle && state != StreamWriterState::Finalized)
|
||||
if (state != StreamWriterState::Idle)
|
||||
FinalizeDataCollection();
|
||||
NotifyTcpAck(TCPFrameType::CANCEL, true, false, TCPAckCode::None);
|
||||
const bool error_state = (state == StreamWriterState::Error);
|
||||
NotifyTcpAck(TCPFrameType::CANCEL, !error_state, error_state,
|
||||
error_state ? TCPAckCode::EndFailed : TCPAckCode::None,
|
||||
error_state ? err : "");
|
||||
|
||||
state = StreamWriterState::Finalized;
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user