I'm My Own Grandpa ... umm ... Wingman!

Stan Pope
Stan Pope
Joined: 22 Dec 05
Posts: 80
Credit: 426811575
RAC: 0
Topic 198214

While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Question: How common is it that "I'm my own wingman?" (to the tune of the Ray Stevens classic "I'm my own Grandpa" https://www.youtube.com/watch?v=zeIsxXDyjlc.)
And, what external factors enhance the likelihood?

Stan

mikey
mikey
Joined: 22 Jan 05
Posts: 12702
Credit: 1839106224
RAC: 3612

I'm My Own Grandpa ... umm ... Wingman!

Quote:

While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Question: How common is it that "I'm my own wingman?" (to the tune of the Ray Stevens classic "I'm my own Grandpa" https://www.youtube.com/watch?v=zeIsxXDyjlc.)
And, what external factors enhance the likelihood?

That's not normal across Boinc!! Projects tend to stay away due to one user having a batch of bad pc's affecting the outcomes.

David S
David S
Joined: 6 Dec 05
Posts: 2473
Credit: 22936222
RAC: 0

RE: RE: While looking to

Quote:
Quote:

While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Question: How common is it that "I'm my own wingman?" (to the tune of the Ray Stevens classic "I'm my own Grandpa" https://www.youtube.com/watch?v=zeIsxXDyjlc.)
And, what external factors enhance the likelihood?

That's not normal across Boinc!! Projects tend to stay away due to one user having a batch of bad pc's affecting the outcomes.


I think the original reason for avoiding it was to reduce the possibility of fraud.

David

Miserable old git
Patiently waiting for the asteroid with my name on it.

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

RE: I think the original

Quote:

I think the original reason for avoiding it was to reduce the possibility of fraud.

From the font of boinc there are two server side settings...


If set, send at most one instance of a given job to a given user. This increases the effectiveness of replication-based validation by making it more difficult for hackers to get all the instances of a given job.

If present, send at most one result of a given workunit to a given host. This is weaker than one_result_per_user_per_wu; it's useful if you're using homogeneous redundancy and most of the hosts of a particular class belong to a single user.

Which may suggest only the second is set.

Stan Pope
Stan Pope
Joined: 22 Dec 05
Posts: 80
Credit: 426811575
RAC: 0

Thank you, Gents.

Thank you, Gents.

AgentB, interesting about the project option. So E@h explicitly allows it.

Then increasing the number of one's hosts would increase the probability of occurrence ... proportional to (nhosts-1)?

Updating multiple hosts (requesting tasks) at the same time, e.g. by the 'update' tool in BoinkTasks, would move the probability off "virtually zero" toward "will happen once in a while"? This would seem an almost necessary precondition, I think, since I understand that all members of a quorum become available for assignment at the same time.

Stan

Bernd Machenschalk
Bernd Machenschalk
Moderator
Administrator
Joined: 15 Oct 04
Posts: 4312
Credit: 250660010
RAC: 34491

We definitely set . This

We definitely set .

This is a serious error.

Thanks for pointing it out.

BM

BM

Bernd Machenschalk
Bernd Machenschalk
Moderator
Administrator
Joined: 15 Oct 04
Posts: 4312
Credit: 250660010
RAC: 34491

FWIW we currently have 729

FWIW we currently have 729 such WUs in the DB, with 900k WUs in total the chance of this happening is <0.1%.

Yet still this is enough to worry me, as this should never ever happen.

BM

BM

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

RE: While looking to see

Quote:
While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Interestingly both tasks were sent at exactly the same time, 22 Aug 2015 20:17:23 UTC.

Mike Hewson
Mike Hewson
Moderator
Joined: 1 Dec 05
Posts: 6591
Credit: 319485300
RAC: 427463

RE: RE: While looking to

Quote:
Quote:
While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Interestingly both tasks were sent at exactly the same time, 22 Aug 2015 20:17:23 UTC.


[Thinking out loud] Hmmmm .... the second one is sent/allocated before the first is marked in the DB ? If so the "same user" test on the second task is being applied before the DB is updated with the allocation of the first. With asynchronous processes - here task allocation & DB marking - this could happen depending on any delay in the backends. If that's so, you'd need to have a sequence point set to await resolution/confirmation before proceeding with the next host assignment. Or just remember the very last user ID assigned, but that would not catch a next-to-last inconsistency ( or next-to-next-to-last ....). What a pain.

Cheers, Mike.

I have made this letter longer than usual because I lack the time to make it shorter ...

... and my other CPU is a Ryzen 5950X :-) Blaise Pascal

AgentB
AgentB
Joined: 17 Mar 12
Posts: 915
Credit: 513211304
RAC: 0

RE: RE: RE: While

Quote:
Quote:
Quote:
While looking to see what was holding up credit for task PM0049_02191_300_0 which my i7-860 completed on 30 Aug, I was surprised to see that the other half of the quorum, PM0049_02191_300_1, was assigned to my Q9550! (see http://einsteinathome.org/workunit/225909288)

Interestingly both tasks were sent at exactly the same time, 22 Aug 2015 20:17:23 UTC.


[Thinking out loud] Hmmmm .... the second one is sent/allocated before the first is marked in the DB ? If so the "same user" test on the second task is being applied before the DB is updated with the allocation of the first. With asynchronous processes - here task allocation & DB marking - this could happen depending on any delay in the backends. If that's so, you'd need to have a sequence point set to await resolution/confirmation before proceeding with the next host assignment. Or just remember the very last user ID assigned, but that would not catch a next-to-last inconsistency ( or next-to-next-to-last ....). What a pain

Hmm, it's not that you have to compare userids, you just have to ensure a division, so something like (for quorum=2) odd numbered userids can only be given odd tasks, and even, even numbered tasks.

Edit: i guess there's a reasonable assumption that task-id are sequential, and user-id are randomly and evenly spread.

Bernd Machenschalk
Bernd Machenschalk
Moderator
Administrator
Joined: 15 Oct 04
Posts: 4312
Credit: 250660010
RAC: 34491

The problem has been tracked

The problem has been tracked down, and the fix is easier to implement than I first thought.

I won't reveal the details here, though, until I implemented it, to avoid attracting cheaters.

It is usually a bad idea to change the scheduler on a Friday, so I'll wait until Monday.

Thanks again for reporting!

BM

BM

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.