Hopefully fix the buildfarm. Add some debug level 10 messages
authorJeremy Allison <jra@samba.org>
Tue, 12 May 2009 00:29:48 +0000 (17:29 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 12 May 2009 00:29:48 +0000 (17:29 -0700)
I used to track down the vlp problem, change the vlp test printer
not to use a static path of /tmp/vlp.tdb for the virtual print
database (as this will eventually fill up). Cause it to use
a virtual print database inside the cachepath.
Jeremy.

source3/printing/printing.c
source3/printing/tests/vlp.c

index 83b5ac8..ce98792 100644 (file)
@@ -2313,11 +2313,15 @@ static bool allocate_print_jobid(struct tdb_print_db *pdb, int snum, const char
                        if (tdb_error(pdb->tdb) != TDB_ERR_NOEXIST) {
                                DEBUG(0, ("allocate_print_jobid: failed to fetch INFO/nextjob for print queue %s\n",
                                        sharename));
+                               tdb_unlock_bystring(pdb->tdb, "INFO/nextjob");
                                return False;
                        }
+                       DEBUG(10,("allocate_print_jobid: no existing jobid in %s\n", sharename));
                        jobid = 0;
                }
 
+               DEBUG(10,("allocate_print_jobid: read jobid %u from %s\n", jobid, sharename));
+
                jobid = NEXT_JOBID(jobid);
 
                if (tdb_store_int32(pdb->tdb, "INFO/nextjob", jobid)==-1) {
@@ -2329,8 +2333,10 @@ static bool allocate_print_jobid(struct tdb_print_db *pdb, int snum, const char
                /* We've finished with the INFO/nextjob lock. */
                tdb_unlock_bystring(pdb->tdb, "INFO/nextjob");
 
-               if (!print_job_exists(sharename, jobid))
+               if (!print_job_exists(sharename, jobid)) {
                        break;
+               }
+               DEBUG(10,("allocate_print_jobid: found jobid %u in %s\n", jobid, sharename));
        }
 
        if (i > 2) {
index 286e4a4..ec610d9 100644 (file)
@@ -21,7 +21,6 @@
 
 #include "includes.h"
 
-#define PRINT_TDB "/tmp/vlp.tdb"
 #define PRINT_FIRSTJOB "100"
 
 static TDB_CONTEXT *tdb;
@@ -376,6 +375,7 @@ static int lpresume_command(int argc, char **argv)
 int main(int argc, char **argv)
 {
        /* Parameter check */
+       char *printdb_path = NULL;
 
        if (argc == 1) {
                usage();
@@ -384,15 +384,24 @@ int main(int argc, char **argv)
 
        /* Initialise */
 
-       if (!(tdb = tdb_open(PRINT_TDB, 0, 0, O_RDWR | O_CREAT,
+#if 0
+       printdb_path = "/tmp/vlp.tdb";
+#else
+       if (asprintf(&printdb_path, "%svlp.tdb",
+                                cache_path("printing/"))) {
+               return 1;
+       }
+#endif
+
+       if (!(tdb = tdb_open(printdb_path, 0, 0, O_RDWR | O_CREAT,
                             0666))) {
-               printf("%s: unable to open %s\n", argv[0], PRINT_TDB);
+               printf("%s: unable to open %s\n", argv[0], printdb_path);
                return 1;
        }
 
        /* Ensure we are modes 666 */
 
-       chmod(PRINT_TDB, 0666);
+       chmod(printdb_path, 0666);
 
        /* Do commands */