Source Code Review Form 
=======================
(version 1.3)

Date:

1 Identification
AH-2007-06-28-0: Bugfix:    - parallel resource reservation broken when non-queue 
                              instance based quotas limits apply
                            - sort out queues/hosts unsuited due to RQS
                            - call job_has_soft_requests() only once per assignment
                            - move RQS scheduling code from sge_select_queue.c into
                              sge_resource_quota_schedd.c
                 Bugster:   6571749
                 Issue:     2303
                 Review:    AA

2 Conforms to specification

2 [x] yes
2 [ ] no - comment:


3 Documentation

3.1 user/admin guide OK, or doc CR filed?
3.1 [x] yes
3.1 [ ] no - comment:

3.2 man pages (user view) correct?
3.2 [x] yes
3.2 [ ] no - comment:

3.3 -help output correct and complete?
3.3 [x] yes
3.3 [ ] no - comment:

3.4 documented interfaces (at least GDI, EVI, libs, ADOC format) correct, updated?
3.4 [x] yes
3.4 [ ] no - comment:

3.5 messages, output formats and defines OK?
3.5 [x] yes
3.5 [ ] no - comment:

3.6 Bugster CR complete and correct?
3.6 [x] yes
3.6 [ ] no - comment:

3.7 Issuezilla entry (if exists) complete and correct?
3.7 [x] yes
3.7 [ ] no - comment:


4 Source review

4.1 Style guide conformance
4.1 [x] yes
4.1 [ ] no - comment:

4.2 Memory leaks
4.2 [x] yes
4.2 [ ] no - comment:

4.3 Thread safe
4.3 [x] yes
4.3 [ ] no


5 Tests

5.1 Used memory leak debugger
5.1 [x] yes
5.1 [ ] no - comment:
Tested scheduler with dbx and check -leaks option.

5.2 Manual tests
Description:
Extensive tests to verify performance improvements. Numers under

   https://n1wiki.sfbay.sun.com/bin/view/GE/ResourceQuotaFullParCacheFix

Manual tests to verify RQS reservation fix:

(1) Use a RQS that limits slots to 5 in total
{
   name         jeder_nur_eins
   description  global
   enabled      TRUE
   limit        to slots=5
}

(2) Use a PE with allocation rule '1' to cause slots be accumulated from more than a single host
pe_name           intelmpi
slots             500
user_lists        NONE
xuser_lists       NONE
start_proc_args   NONE
stop_proc_args    NONE
allocation_rule   1
control_slaves    FALSE
job_is_first_task TRUE
urgency_slots     min

(3) Make sure there are at least five hosts in the cluster. Otherwise jobs won't run.

(4) To verfiy backfilling works run this

   ./test_drmaa ST_BACKFILL_FINISH_ORDER \
       $SGE_ROOT/examples/jobs/sleeper.sh \
       "-R y -N L4_BF -p 100 -l h_rt=15 -pe intelmpi 4"  \
       "-R y -N L5_BF -p 0 -l h_rt=15 -pe intelmpi 5"  \
       "-R y -N L1_BF -p 0 -l h_rt=15 -pe intelmpi 1"

(5) To verfiy resource reservation works run this

   ./test_drmaa ST_RESERVATION_FINISH_ORDER \
       $SGE_ROOT/examples/jobs/sleeper.sh \
      "-R y -N L4_RR -p 100 -l h_rt=15 -pe intelmpi 4" \
      "-R y -N L5_RR -p 0 -l h_rt=15 -pe intelmpi 5" \
      "-R y -N L1_RR -p 0 -l h_rt=25 -pe intelmpi 1"

Successfull execution
5.2 [x] yes
5.2 [ ] no - comment:

5.3 Testsuite covers issue
5.3 [ ] yes
5.3 [x] no - comment:

5.4 If 5.3 = no: New testsuite test or module test created?
5.4 [ ] yes, path: 
5.4 [x] no - justification: 

5.5 If 5.4 = no: Testsuite issue created?
5.5 [ ] yes, id: 
5.5 [x] no - justification:

5.6 Testsuite run successfull
5.6 [ ] yes
5.6 [x] no - comment: 


6 Comments

7 Accepted
7 [x] yes
7 [ ] no - comment:
