if (ap->abfname != NULL) {
unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
char errmsg[500];
+ char *cp = ((char *)ap) + HEAD_SIZE;
bsnprintf(errmsg, sizeof(errmsg),
- _("Orphaned buffer: %6u bytes allocated at line %d of %s %s\n"),
- memsize, ap->ablineno, my_name, ap->abfname
+ _("Orphaned buffer: %s %6u bytes buf=%p allocated at %s:%d\n"),
+ my_name, memsize, cp, ap->abfname, ap->ablineno
);
fprintf(stderr, "%s", errmsg);
if (bufdump) {
char buf[20];
unsigned llen = 0;
- char *cp = ((char *) ap) + HEAD_SIZE;
errmsg[0] = EOS;
while (memsize) {
*/
void free_dcr(DCR *dcr)
{
+ JCR *jcr = dcr->jcr;
if (dcr->dev) {
detach_dcr_from_dev(dcr);
if (dcr->rec) {
free_record(dcr->rec);
}
- if (dcr->jcr) {
- dcr->jcr->dcr = NULL;
+ if (jcr && jcr->dcr == dcr) {
+ jcr->dcr = NULL;
}
free(dcr);
}
if (!acquire_device_for_append(dcr)) {
set_jcr_job_status(jcr, JS_ErrorTerminated);
- jcr->dcr = NULL;
return false;
}
}
if (!ok) {
- Dmsg1(000, "Tape block=%d\n", dev->block_num);
discard_data_spool(dcr);
} else {
/* Note: if commit is OK, the device will remain locked */
delete jcr->dcrs;
}
jcr->dcrs = NULL;
+
if (jcr->dcr) {
free_dcr(jcr->dcr);
jcr->dcr = NULL;
delete jcr->write_store;
jcr->write_store = NULL;
}
-
return;
}
}
P(vol_list_lock);
for (vol=(VOLRES *)vol_list->first(); vol; vol=(VOLRES *)vol_list->next(vol)) {
- Dmsg3(000, "Unreleased Volume=%s dcr=0x%x dev=0x%x\n", vol->vol_name,
+ Dmsg3(100, "Unreleased Volume=%s dcr=0x%x dev=0x%x\n", vol->vol_name,
vol->dcr, vol->dev);
}
delete vol_list;
break;
}
}
-
return ok;
}
free_dcr(dcr);
jcr->dcr = NULL;
}
+#ifdef xxx
+ if (jcr->dcr) {
+ Dmsg1(000, "free_dcr=%p\n", jcr->dcr);
+ free_dcr(jcr->dcr);
+ jcr->dcr = NULL;
+ }
+#endif
free_jcr(jcr);
init_done = true;
UnlockRes();
General:
16Dec06
+kes Implement cleaner orphan buffer dumping with buf address.
+kes Fix orphaned buffer when canceling job waiting on op intervention.
kes Update projects file for next vote.
kes Implement a fix (more could be done) for bug #728 where a double
EOF is writing on the Volume when spooling is enabled and the