When the queue with vcores is in decimal value, the value after the decimal point is taken as vcores by FairScheduler.
For the below queue,
<minResources>20000 mb,20 vcores,20.25 disks</minResources>
<maxResources>30000 mb,40.2 vcores,30.25 disks</maxResources>
When many applications submitted parallely into queue, all were in PENDING state as the vcores is taken as 2 skipping the value 40.
The code FairSchedulerConfiguration.java to Pattern match the vcores has to be improved in such a way either throw AllocationConfigurationException("Missing resource") or consider the value before decimal.