In the log you posted, it seems total cpus is also 2 rather than 1, but it seem there are 4 allocated cpus (2 non-revocable and 2 revocable)?
I0121 17:08:09.303431 4284416 hierarchical.cpp:528] Slave f2d8b550-ed52-44a4-a35a-1fff81d41391-S0 (9.181.90.153) updated with oversubscribed resources (total: cpus(*):2; mem(*):1024; disk(*):1024; ports(*):[31000-32000], allocated: cpus(*):2; mem(*):1024; disk(*):1024; ports(*):[31000-32000]; *cpus(*){REV}:2*) Thanks, Qian Zhang On Thu, Jan 21, 2016 at 5:25 PM, Klaus Ma <klaus1982...@gmail.com> wrote: > Hi team, > > When I double-check the feature interaction between Optimistic Offer Phase > 1 & Oversubscription, I found an issue that `allocated` may have more > resources then `total` in allocator when enable Oversubscription. I'd like > to get your input on whether this is design behaviour, although the impact > is low: 1.) allocator will not offer this delta resources, 2) QoS > Controller will correct it later by killing the executor. Personally, I'd > like to keep this assumption in allocator: slave.total always contains > slave.allocated. > > Here's the steps: > > T1: in cluster, cpus=2: one is revocable and the other one is nonRevocable > T2: framework1 get offer cpus=2, launch task but estimator report empty > resources before executor launched > T3: slave.total is updated to cpus=1 in > HierarchicalAllocatorProcess::updateSlave > T4: in allocate(), slave.total (cpus=1) < slave.allocated (cpus=2) > > Here's the log I got: > > I0121 17:08:09.303431 4284416 hierarchical.cpp:528] Slave > f2d8b550-ed52-44a4-a35a-1fff81d41391-S0 (9.181.90.153) updated with > oversubscribed resources (total: cpus(*):2; mem(*):1024; disk(*):1024; > ports(*):[31000-32000], allocated: cpus(*):2; mem(*):1024; disk(*):1024; > ports(*):[31000-32000]; *cpus(*){REV}:2*) > > Please refer to MESOS-4442 for more detail. > > ---- > Da (Klaus), Ma (马达) | PMP® | Advisory Software Engineer > Platform OpenSource Technology, STG, IBM GCG > +86-10-8245 4084 | klaus1982...@gmail.com | http://k82.me >