This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours
Bug 869455 - submitting job with <package/> results in database error: (OperationalError) (1048, "Column 'job_id' cannot be null")
submitting job with <package/> results in database error: (OperationalError) ...
Status: CLOSED CURRENTRELEASE
Product: Beaker
Classification: Community
Component: scheduler (Show other bugs)
0.9
Unspecified Unspecified
medium Severity unspecified (vote)
: 0.11
: ---
Assigned To: Dan Callaghan
Amit Saha
Misc
: Regression, Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-23 20:35 EDT by Dan Callaghan
Modified: 2015-07-26 18:14 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-01-16 23:34:41 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Dan Callaghan 2012-10-23 20:35:57 EDT
Description of problem:
When processing a submitted job, TaskPackage.lazy_create can trigger a flush while the job is not fully populated, resulting in a NULLable violation.

Version-Release number of selected component (if applicable):
0.9

How reproducible:
always

Steps to Reproduce:
1. Submit a job containing a <package/> whose name has never been used in Beaker before
  
Actual results:
Failed to import job because of: (OperationalError) (1048, "Column 'job_id' cannot be null") 'INSERT INTO recipe_set (job_id, priority, queue_time, result, status, lab_controller_id, ttasks, ptasks, wtasks, ftasks, ktasks) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' (None, 'Normal', datetime.datetime(2012, 10, 24, 0, 29, 37, 807458), 'New', 'New', None, 0, 0, 0, 0, 0)

Expected results:
Job is accepted, task_package row is created.

Additional info:
Reported by Jaroslav Kortus:
https://lists.fedorahosted.org/pipermail/beaker-devel/2012-October/000379.html
Comment 1 Dan Callaghan 2012-10-23 20:37:04 EDT
Workaround is to manually insert the offending task_package row:

INSERT INTO task_package (package) VALUES ('new-package-name');
Comment 2 Dan Callaghan 2012-10-23 20:47:57 EDT
Actually I think this affects any job which includes any <package/> element, which makes this quite a serious regression... still investigating.
Comment 3 Dan Callaghan 2012-10-23 21:49:10 EDT
This was a regression in 0.8.2 and affects any job containing a <package/> element.

Like all the other lazy_create bugs we have had, it is due to this change introducing nested transactions:
http://git.beaker-project.org/cgit/beaker/diff/Server/bkr/server/model.py?id=bb12ed97

The workaround in comment 1 is not valid either. The only workaround is to avoid using <package/>. One possibility is to use a <ks_append/> containing a second %packages section, although I think this breaks in very old Anaconda versions. Another option is to pass ks_meta="packages=onepackage:anotherpackage" inside <recipe/>.
Comment 4 Dan Callaghan 2012-10-24 02:47:18 EDT
On Gerrit: http://gerrit.beaker-project.org/1436
Comment 6 Amit Saha 2012-11-09 02:58:13 EST
Verified to be fixed. Ran the test case against the release-0.10 branch and against the master branch. It fails in the latter. Also submitted a simple Job with additional <package> specification. The kickstart file was generated correctly.
Comment 7 Raymond Mancy 2012-11-22 01:44:01 EST
This has now been released
Comment 8 Dan Callaghan 2012-11-29 01:04:25 EST
This bug still exists. My fix only works in the case with one recipeset and one recipe and no guestrecipes.

I also just discovered the reason why nobody has hit this bug in our production Beaker instance. There is one very small but very important difference in the production schema vs our source code (and tests): recipe.recipe_set_id and recipe_set.job_id are NULLable in production. That will also need to be fixed: bug 881563.
Comment 9 Dan Callaghan 2012-11-29 01:24:14 EST
On Gerrit: http://gerrit.beaker-project.org/1525
Comment 12 Dan Callaghan 2013-01-16 23:34:41 EST
Beaker 0.11.0 has been released.

Note You need to log in before you can comment on or make changes to this bug.