From bd0ea88fdd79dfdf4e013dcc9a7195425cd72723 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Tue, 20 Nov 2018 15:37:58 +0100 Subject: [PATCH] Fix bug #4379 certain fields of Media record not reset after Truncate command --- bacula/src/cats/sql_update.c | 3 ++- bacula/src/dird/ua_purge.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bacula/src/cats/sql_update.c b/bacula/src/cats/sql_update.c index ee85bd7e8..7a8bb4ee0 100644 --- a/bacula/src/cats/sql_update.c +++ b/bacula/src/cats/sql_update.c @@ -375,7 +375,7 @@ int BDB::bdb_update_media_record(JCR *jcr, MEDIA_DBR *mr) "LabelType=%d,StorageId=%s,PoolId=%s,VolRetention=%s,VolUseDuration=%s," "MaxVolJobs=%d,MaxVolFiles=%d,Enabled=%d,LocationId=%s," "ScratchPoolId=%s,RecyclePoolId=%s,RecycleCount=%d,Recycle=%d," - "ActionOnPurge=%d,CacheRetention=%s" + "ActionOnPurge=%d,CacheRetention=%s,EndBlock=%d" " WHERE VolumeName='%s'", mr->VolJobs, mr->VolFiles, mr->VolBlocks, edit_uint64(mr->VolBytes, ed1), @@ -402,6 +402,7 @@ int BDB::bdb_update_media_record(JCR *jcr, MEDIA_DBR *mr) edit_uint64(mr->RecyclePoolId, ed15), mr->RecycleCount,mr->Recycle, mr->ActionOnPurge, edit_uint64(mr->CacheRetention, ed16), + mr->EndBlock, esc_name); Dmsg1(dbglevel1, "%s\n", cmd); diff --git a/bacula/src/dird/ua_purge.c b/bacula/src/dird/ua_purge.c index d63fbf7c7..1ea739e28 100644 --- a/bacula/src/dird/ua_purge.c +++ b/bacula/src/dird/ua_purge.c @@ -626,6 +626,7 @@ static void truncate_volume(UAContext *ua, MEDIA_DBR *mr, &VolBytes, &VolABytes, &VolType) == 3) { ok = true; + /* Clean up a few things in the media record */ mr->VolBytes = VolBytes; mr->VolABytes = VolABytes; mr->VolType = VolType; @@ -633,6 +634,11 @@ static void truncate_volume(UAContext *ua, MEDIA_DBR *mr, mr->VolParts = 1; mr->VolCloudParts = 0; mr->LastPartBytes = VolBytes; + mr->VolJobs = 0; + mr->VolBlocks = 1; + mr->VolHoleBytes = 0; + mr->VolHoles = 0; + mr->EndBlock = 1; set_storageid_in_mr(NULL, mr); if (!db_update_media_record(ua->jcr, ua->db, mr)) { -- 2.47.3