[pbs-devel] [PATCH proxmox-backup 14/33] server: notifications: send GC notifications via notification system
Lukas Wagner
l.wagner at proxmox.com
Tue Apr 16 14:13:24 CEST 2024
On 2024-04-16 11:37, Gabriel Goller wrote:
> On Fri Apr 12, 2024 at 12:06 PM CEST, Lukas Wagner wrote:
>> diff --git a/src/server/gc_job.rs b/src/server/gc_job.rs
>> index 41375d72..ff5bdccf 100644
>> --- a/src/server/gc_job.rs
>> +++ b/src/server/gc_job.rs
>> @@ -19,8 +19,6 @@ pub fn do_garbage_collection_job(
>> ) -> Result<String, Error> {
>> let store = datastore.name().to_string();
>>
>> - let (email, notify) = crate::server::lookup_datastore_notify_settings(&store);
>> -
>> let worker_type = job.jobtype().to_string();
>> let upid_str = WorkerTask::new_thread(
>> &worker_type,
>> @@ -43,11 +41,9 @@ pub fn do_garbage_collection_job(
>> eprintln!("could not finish job state for {}: {err}", job.jobtype());
>> }
>>
>> - if let Some(email) = email {
>> - let gc_status = datastore.last_gc_status();
>> - if let Err(err) = send_gc_status(&email, notify, &store, &gc_status, &result) {
>> - eprintln!("send gc notification failed: {err}");
>> - }
>> + let gc_status = datastore.last_gc_status();
>> + if let Err(err) = send_gc_status(&store, &gc_status, &result) {
>> + eprintln!("send gc notification failed: {err}");
>
> I think we should use 'task_err!()' here. I know eprintln is used above,
> and technically works because we redirect stderr in the service setup
> but it's still slow and kinda the legacy method of printing task errors.
I think the reason why the original code does not use task_log is because the
job is already marked as finished at that point:
if let Err(err) = job.finish(status) {
eprintln!("could not finish job state for {}: {err}", job.jobtype());
}
let gc_status = datastore.last_gc_status();
if let Err(err) = send_gc_status(&store, &gc_status, &result) {
eprintln!("send gc notification failed: {err}");
}
Other jobs seem to follow the same pattern - use task_log! before, and eprintln/log::error!
after the job is finished.
A `task_log!` after the job is finished still seems to work, but I'm not sure if that
might lead to problems. What do you think?
--
- Lukas
More information about the pbs-devel
mailing list