# Note Debian has a different mt than the standard Linux version.
# When no tape is in the drive it waits 2 minutes.
# When a tape is in the drive, it prints user unfriendly output.
+# Note, with Ubuntu Gusty (8.04), there are two versions of mt,
+# so we attempt to figure out which one.
#
OS=`uname`
ready="Current Driver State: at rest."
;;
Linux)
- if test -e /etc/debian_version ; then
- ready="drive status"
- else
- ready="ONLINE"
+ ready="ONLINE"
+ if test -f /etc/debian_version ; then
+ mt --version|grep "mt-st" >/dev/null 2>&1
+ if test $? -eq 1 ; then
+ ready="drive status"
+ fi
fi
;;
esac
dev->num_writers, jcr->JobId);
goto get_out;
}
- dev->clear_unload();
/* Find next Volume, if any */
vol = jcr->VolList;
}
}
+ dev->clear_unload();
+
if (reserve_volume(dcr, dcr->VolumeName) == NULL) {
Dmsg2(100, "Could not reserve volume %s on %s\n", dcr->VolumeName,
dcr->dev->print_name());
POOLMEM *changer;
if (!dev->is_autochanger()) {
- Dmsg0(100, "ChangerCommand=0, virtual disk changer\n");
+ Dmsg1(100, "Device %s is not an autochanger\n", dev->print_name());
return 0;
}
{
JCR *jcr;
- bmicrosleep(0, 50000); /* wait 50 millisecs */
+/*
+ * With the following bmicrosleep on, running the
+ * SD under the debugger fails.
+ */
+// bmicrosleep(0, 50000); /* wait 50 millisecs */
if (!(jcr=get_jcr_by_full_name(job_name))) {
Jmsg1(NULL, M_FATAL, 0, _("FD connect failed: Job name not found: %s\n"), job_name);
- Dmsg1(3, "**** Job \"%s\" not found", job_name);
+ Dmsg1(3, "**** Job \"%s\" not found\n", job_name);
return;
}
return VOL_IO_ERROR;
}
}
+#ifdef xxx
if (dev->is_labeled()) { /* did we already read label? */
/* Compare Volume Names allow special wild card */
if (VolName && *VolName && *VolName != '*' && strcmp(dev->VolHdr.VolumeName, VolName) != 0) {
Dmsg0(130, "Leave read_volume_label() VOL_OK\n");
return VOL_OK; /* label already read */
}
+#endif
dev->clear_labeled();
dev->clear_append();
if (strcmp(rctx.device_name, changer->hdr.name) == 0) {
/* Try each device in this AutoChanger */
foreach_alist(rctx.device, changer->device) {
+ if (!rctx.device->autoselect) {
+ Dmsg1(100, "Device %s not autoselect skipped.\n",
+ rctx.device->hdr.name);
+ continue; /* device is not available */
+ }
Dmsg2(dbglvl, "jid=%u Try changer device %s\n", (int)rctx.jcr->JobId,
rctx.device->hdr.name);
stat = reserve_device(rctx);
*/
#undef VERSION
-#define VERSION "2.4.1-b1"
-#define BDATE "01 July 2008"
-#define LSMDATE "01Jul08"
+#define VERSION "2.4.1-b2"
+#define BDATE "02 July 2008"
+#define LSMDATE "02Jul08"
#define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
#define BYEAR "2008" /* year for copyright messages in progs */
Technical notes on version 2.4
General:
+02Jul08
+kes Fix mtx-changer to detect both versions of Ubuntu (Debian)
+ mt. This fixes bug #1116.
+kes Fix failure of 2drive-concurrent-test. Always read label;
+ clear_unload() only after drive is defined in acquire_for_read().
+
Release Beta version 2.4.1-b1
01Jul08
kes Back out bad src/lib/base64.c change.