GENIVI / rvi_core

Specify, design, plan and build a reference implementation of the open source infrastructure that drives next generation's connected vehicle services.
Mozilla Public License 2.0
64 stars 35 forks source link

Don't unregister services for a disconnected remote node that have already been re-registered. #14

Closed magnusfeuer closed 9 years ago

magnusfeuer commented 9 years ago
  1. RVI(client) connects to RVI(server)
  2. RVI(client) registers jlr.com/x/y
  3. RVI(client) power fails, and does not shut down connection to RVI(server)
  4. RVI(client) comes back up
  5. RVI(client) connects to RVI(server)
  6. RVI(client) registers jlr.com/x/y
  7. The old TCP/IP connection from Step 1 finally times out in RVI(server)
  8. RVI(server) deletes jlr.com/x/y from its tables since it was associated with the old connection.

Solution is to have service_discovery:unregister_remote_services_by_address() verify that each service to be unregistered has not been registered from another peer address. Those that have been registered should not be dropped.

magnusfeuer commented 9 years ago

Fixed in f2d14ebadc7bcf478012495da4d837e7160db02c