[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] Python bindings schedd.edit value question




Hi Nick,

My suggestion to solve the below:

Instead of setting a custom classad attribute "GraceValue" to 2GB, just set "retry_request_memory=2GB" in the job description.

All done.  No need for a script ... woohoo!

See this URL for a "Tip of the month" example showing this exact problem:
    https://htcondor.org/featured-users/2026-02-06-request-variable-memory.html

If all your users are already trained to set "GraceValue" in their job submissions and you do not want to retrain people, you could make a small job transform at your AP to simply copy or rename "GraceValue" to "RetryRequestMemory".

IIRC, I think "retry_request_memory" appeared starting in HTCSS v25.2.1.

regards,
Todd



On 4/3/2026 2:32 PM, Nicholas Peregonow via HTCondor-users wrote:
We currently have a script that looks for jobs that were held for going over RequestMemory. If the user who submitted the job added a "GraceValue" of 2GB, the script will queue edit the job, and set the RequestMemory to orig_RequestMemory + GraceValue.  Then we release the jobs.  

This works in principle, but it gets a little tricky when we have a 4000 jobs in the queue all held for the same reason and but from various different users, with different GraceValues.

Is it possible when using Schedd.edit() to set a classad to the literal value of another?  Currently, if i do this

schedd.edit(job_id_num, 'orig_RequestMemory', 'RequestMemory').   

Then when I check the value of 'orig_RequestMemory' it is set to  orig_RequestMemory=RequestMemory.  

Which is fine in normal cases, but if I then do a 

schedd.edit(job_id_num, 'RequestMemory', 'orig_RequestMemory+GraceValue')   it winds up in a situation where 

orig_RequestMemory=RequestMemory
RequestMemory=orig_RequestMemory+GraceValue

And we no longer have a value for RequestMemory to match on.  As orig_RequestMemory doesn't appear an actual value associated with it.   Or at least, a value that I know how to verify

I know I can do something like a for loop, and just feed it the already calculated value, but then that ends up being a lot of calls to schedd.edit().   

--
Nick Peregonow



_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe

The archives can be found at: https://www-auth.cs.wisc.edu/lists/htcondor-users/ 


-- 
Todd Tannenbaum <tannenba@xxxxxxxxxxx>  University of Wisconsin-Madison
Center for High Throughput Computing    Department of Computer Sciences
Calendar: https://tinyurl.com/yd55mtgd  1205 University Ave.
Phone: (608) 263-7132                   Madison, WI 53706
Personal Zoom Room: https://uwmadison.zoom.us/my/tannenba