Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
The k-shortest path query sometimes returns a wrong response. The cause of this issue is inappropriate use of sync.pools. Whenever a valid path is found a new variable is assigned with this route and that variable is appended in the kroutes (which is then parsed to produce response). But the route is also put in the sync.pool. Since the route is a structure containing a pointer to slice along with other fields, when it is fetched back from the pool in future then any mutation on this fetched route causes modification in the kroutes, resulting in garbage response. This issue is fixed by making a copy of the route struct rather than just assigning it to a variable, which causes a shallow copy. (cherry picked from commit 4792d8b)
- Loading branch information