server_id not truly unique

Bug #1365614 reported by Morgan Jones
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack DBaaS (Trove)
Triaged
Low
Morgan Jones

Bug Description

During instance creation, a "unique" server_id is generated for each trove instance. The server_id is derived from the instance id modulo 65535, which of course is not truly unique. This has not been an issue to date, but the replication feature relies on the server_ids being unique. Eventually, a non-unique server_id will be generated within a master/slave set and replication will fail.

We need to come up with a better way of assigning server_ids.

See trove/common/template.py:_calculate_unique_id()

Denis M. (dmakogon)
Changed in trove:
status: New → Triaged
importance: Undecided → Low
Revision history for this message
Amrith Kumar (amrith) wrote :

Why is the importance of this "Low"?

Morgan, what are the consequences of not having a unique server id?

Revision history for this message
Denis M. (dmakogon) wrote :

The importance is 'Low' since this bug only affects specific replication set.
The probability of ID's collision is 1/2^16 -1
And as i can see, nobody does replication deployment with 2^16-1 slaves. This is why it's LOW.

Revision history for this message
Denis M. (dmakogon) wrote :

But i do agree that it should be fixed.

Revision history for this message
Morgan Jones (6-morgan) wrote :

Replication will not work if the server ids are not unique.

It is not necessary for someone to have 2^16 slaves to run into this problem, it could happen to anyone at any time. However, I don't disagree with this being classified LOW, though it should be fixed in Kilo.

Revision history for this message
Amrith Kumar (amrith) wrote :

Why Kilo? What about Juno?

Changed in trove:
milestone: none → juno-rc1
Changed in trove:
assignee: nobody → Morgan Jones (6-morgan)
Revision history for this message
Nikhil Manchanda (slicknik) wrote :

Spoke to Morgan regarding this, and we're good with moving it out to Kilo since it's not critical for Juno.

Changed in trove:
milestone: juno-rc1 → kilo-1
Changed in trove:
milestone: kilo-1 → next
milestone: next → kilo-2
Changed in trove:
milestone: kilo-2 → kilo-3
Changed in trove:
milestone: kilo-3 → ongoing
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.