I am unable to access list of jobs when I submit jobs with random parameter randomized at the Condor's side. cumin-0.1.4767-1.el5 on RHEL5 x86_64 How reproducible: 100% Steps to Reproduce: 1. Submit jobs using following script: ---------------------------------------------- #!/bin/sh getent passwd test || adduser test echo Submitting a job su - test -c condor_submit << EOF Executable = /bin/sleep Output = /tmp/pokus Universe = vanilla concurrency_limits = JASANLIMIT args = \$\$([15 + random(31)]) queue 100 EOF ---------------------------------------------- 2. go to Grid -> Submissions -> click on the submission produced by the script above Actual results: XML Parsing Error Expected results: Should work fine, possibly escape any strange chars. Additional info: XML Parsing Error: not well-formed Location: http://localhost/index.html?frame=main.grid.submission;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.m=view;main.grid.submission.id=4 Line Number 118, Column 538: <tbody><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.10" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.10"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.11" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.11"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.12" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.12"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.13" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.13"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.14" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.14"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.15" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.15"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.16" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.16"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.17" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.17"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.18" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.18"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.19" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.19"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.2" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.2"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.20" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.20"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.21" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.21"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.22" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.22"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.23" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.23"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.24" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.24"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.25" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.25"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.26" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.26"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.27" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.27"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.28" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.28"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.29" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.29"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.3" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.3"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.30" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.30"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.31" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.31"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr><tr><td class="id"><input type="checkbox" name="main.grid.submission.view.body.jobs.table.selection" value="4.32" tabindex="100" onclick="cumin.clickTableCheckbox(this, 'main.grid.submission.view.body.jobs.table.selection')"/></td><td class="job selected"><a href="index.html?frame=main.grid.submission.job;main.m=grid;main.grid.m=submission;main.grid.id=1;main.grid.view.body.m=pool_submissions;main.grid.submission.id=4;main.grid.submission.job.m=view;main.grid.submission.job.id=4;main.grid.submission.job.job_id=4.32"></a></td><td class="status">Idle</td><td class="Cmd">""</td></tr></tbody> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Don't seem to be able to reproduce. And the special characters shouldn't matter in this case, I think, because this should just be a job listing within a submission, the jobs' args parameters won't be visible until drilling into a job. ??
At character 538 in the above paste (use vi, :goto 538) we have an <a> tag ended with no textual representation of the job for the link, that is we have "></a>" Question: why is the job name blank? And, is it really blank, or is it an unprintable character? The xml parser may not like a blank, or it may be objecting to some other characters there. I will take a look at where job names are generated and see what I can find.
More strangeness. If I select that portion of text and paste into vi, it shows like this: job.job_id=4.10">〈 a></ Bad character?
Going on this theory.... Paste in Vi, save. The 226 140 169 preceding 97 ("a") is clearly suspicious. [tmckay@tmckaylt trunk]$ od -t u1 foo 0000000 106 111 98 46 106 111 98 95 105 100 61 52 46 49 48 34 0000020 62 226 140 169 97 62 60 47 10 0000031 [tmckay@tmckaylt trunk]$ od -a foo 0000000 j o b . j o b _ i d = 4 . 1 0 " 0000020 > b ff ) a > < / nl 0000031 (In reply to comment #4) > More strangeness. > > If I select that portion of text and paste into vi, it shows like this: > > job.job_id=4.10">〈 a></ > > Bad character?
Well, it seems impossible to know what was originally contained there but it was almost certainly an unprintable character. Was able to create the same error message by breaking during rendering and forcing unprintable characters into the link label text. Looks like we need a filter for printable characters somewhere (everywhere?) Jan, it would be interesting to know what this record looks like in the database, or maybe in qpid-tool. If you can reproduce and let me log into a machine where it is happening, I can take a look. Meanwhile I think about printable character filters -- maybe at the top level render routine where we output strings to the html page. Although, one wonders what the effect would be of checking every character output.
Actually I found that the special job is not needed, I reproduced the XML parsing error with normal job which worked in previous versions. May the IE8 fixes have affected it?
The repeated behavior I see is exactly following: 1. After clicking on a particular submission, I get the page with two tabs: Jobs and Details. Current tab is Jobs and all I can see is "Loading..." (despite I wait half a minute) 2. When I refresh the same page, I get the XML parsing error.
I am able to reproduce XML Parsing Error on a clean RHEL5 x86_64 Beaker machine. On the RHEL5 i386 and RHEL6 both archs, I see merely empty strings ("") instead of Job Ids in the jobs list (after clicking on a particular submission). Reproducibility on RHEL5 x86_64 is 100%
Above was on cumin-0.1.4767-1.el5. With cumin-0.1.4794-1.el5 I can not reproduce the parsing error even on RHEL5 x86_64. But I still see the empty string like on the other archs.
Previous comment is not completely valid. I am getting the same XML Parsing Error also on cumin-0.1.4794-1.el5
But not after the upgrade of Condor. I think this bug was the same as bug 708435, for everything seems to be working now. Closing. *** This bug has been marked as a duplicate of bug 708435 ***
If you want to implement the idea of modifying higher level rendering routine not to output any unprintable characters, you are free to bring this bug back to life. I just wanted to make sure the original symptoms are already gone.