You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by "Waldron, Michael H" <mw...@email.unc.edu> on 2014/02/06 19:38:52 UTC

Block allocation problem

We had a block allocation for an image that is limited to 4 concurrent sessions. When the allocation time arrived, users who were in the user group for the allocation trying to make a reservation received a message stating that the environment is limited in the number of concurrent sessions, and that no further reservations could be made during this time. There were NO active reservations for the image at the time.

By increasing the concurrent limit on the image, these users were then able to make a reservation. I verified that the users were indeed in the user group. It was if it wasn't honoring their group membership for the allocation, although when I increased the limit and they successfully made a reservation, I could see that they were getting the reserved machines.

Why wouldn't it allow any reservations for a block allocation that matched the concurrent use limit??

Mike Waldron
Systems Specialist
ITS - Research Computing Center
University of North Carolina at Chapel Hill


Re: Block allocation problem

Posted by Dmitri Chebotarov <dc...@gmu.edu>.
What a coincidence! :) Just ran into exactly the same issue last night.
Have 16 max computers and 16 in block allocations - users in the right
group cannot make reservation.

--
Thank you,

Dmitri Chebotarov
VCL Sys Eng, Engineering & Architectural Support, TSD - Ent Servers &
Messaging
223 Aquia Building, Ffx, MSN: 1B5
Phone: (703) 993-6175 | Fax: (703) 993-3404







On 2/6/14, 13:38 , "Waldron, Michael H" <mw...@email.unc.edu> wrote:

>We had a block allocation for an image that is limited to 4 concurrent
>sessions. When the allocation time arrived, users who were in the user
>group for the allocation trying to make a reservation received a message
>stating that the environment is limited in the number of concurrent
>sessions, and that no further reservations could be made during this
>time. There were NO active reservations for the image at the time.
>
>By increasing the concurrent limit on the image, these users were then
>able to make a reservation. I verified that the users were indeed in the
>user group. It was if it wasn't honoring their group membership for the
>allocation, although when I increased the limit and they successfully
>made a reservation, I could see that they were getting the reserved
>machines.
>
>Why wouldn't it allow any reservations for a block allocation that
>matched the concurrent use limit??
>
>Mike Waldron
>Systems Specialist
>ITS - Research Computing Center
>University of North Carolina at Chapel Hill
>


RE: Block allocation problem

Posted by "Waldron, Michael H" <mw...@email.unc.edu>.
After some testing, the fix is to change the '>=' comparison to just '>', so that the sum of normal reservations and block reservations can equal the max concurrent limit for an image. So line 3895 (your number may vary as I've added in some other mod code) in utils.php should look like:

if(($usagecnt + $row['currentusage'] - $decforedit) > $images[$imageid]['maxconcurrent']) {

It's near the end of the isAvailable function.

Mike

From: Waldron, Michael H
Sent: Thursday, February 06, 2014 3:05 PM
To: 'dev@vcl.apache.org'
Subject: RE: Block allocation problem

I think I may have traced it to this section of code in utils.php, in the 'isAvailable' function where It checks the max concurrent usage. If I'm following the logic correctly (BIG if), the equation near the end of the function around line 3895 is the kicker.

if(($usagecnt + $row['currentusage'] - $decforedit) >= $images[$imageid]['maxconcurrent']) {
                                semUnlock();
                                return -1;

In my case, $usagecnt is 0  (no current reservations), $decforedit is 0, currentusage  is 4 (block computers with the image and not already used), and maxconcurrent is 4. So the statement resolves to 0+4-0 >= 4. Thus it returns -1 saying that max concurrent usage has been reached, even with none of the sessions in use.

Mike

----------------------------------------------------------------------------------------------------------------------------------------
Subject:               Re: Block allocation problem       permalink
From:    Dmitri Chebotarov (dche...@gmu.edu)
Date:     Feb 6, 2014 11:42:50 am
List:        org.apache.incubator.vcl-dev

What a coincidence! :) Just ran into exactly the same issue last night. Have 16 max computers and 16 in block allocations - users in the right group cannot make reservation.

-- Thank you,

Dmitri Chebotarov VCL Sys Eng, Engineering & Architectural Support, TSD - Ent Servers & Messaging 223 Aquia Building, Ffx, MSN: 1B5 Phone: (703) 993-6175 | Fax: (703) 993-3404

---------------------------------------------------------------------------------------------------------------------------------
On 2/6/14, 13:38 , "Waldron, Michael H" <mw...@email.unc.edu> wrote:

We had a block allocation for an image that is limited to 4 concurrent sessions. When the allocation time arrived, users who were in the user group for the allocation trying to make a reservation received a message stating that the environment is limited in the number of concurrent sessions, and that no further reservations could be made during this time. There were NO active reservations for the image at the time.

By increasing the concurrent limit on the image, these users were then able to make a reservation. I verified that the users were indeed in the user group. It was if it wasn't honoring their group membership for the allocation, although when I increased the limit and they successfully made a reservation, I could see that they were getting the reserved machines.

Why wouldn't it allow any reservations for a block allocation that matched the concurrent use limit??

Mike Waldron Systems Specialist ITS - Research Computing Center University of North Carolina at Chapel Hill

RE: Block allocation problem

Posted by "Waldron, Michael H" <mw...@email.unc.edu>.
I think I may have traced it to this section of code in utils.php, in the 'isAvailable' function where It checks the max concurrent usage. If I'm following the logic correctly (BIG if), the equation near the end of the function around line 3895 is the kicker.

if(($usagecnt + $row['currentusage'] - $decforedit) >= $images[$imageid]['maxconcurrent']) {
                                semUnlock();
                                return -1;

In my case, $usagecnt is 0  (no current reservations), $decforedit is 0, currentusage  is 4 (block computers with the image and not already used), and maxconcurrent is 4. So the statement resolves to 0+4-0 >= 4. Thus it returns -1 saying that max concurrent usage has been reached, even with none of the sessions in use.

Mike