[ https://issues.apache.org/jira/browse/PROTON-2396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17450782#comment-17450782 ]
ASF subversion and git services commented on PROTON-2396: --------------------------------------------------------- Commit a58e66ce3e42937a1b22e0c741834bc6eb0a9797 in qpid-proton's branch refs/heads/main from Rakhi Kumari [ https://gitbox.apache.org/repos/asf?p=qpid-proton.git;h=a58e66c ] PROTON-2396: Use random_device for seed initialization in uuid.cpp Closes #340 > [cpp] Seed in uuid.cpp can lead to duplicates > --------------------------------------------- > > Key: PROTON-2396 > URL: https://issues.apache.org/jira/browse/PROTON-2396 > Project: Qpid Proton > Issue Type: Bug > Components: cpp-binding > Environment: RHEL7 running in OpenStack > docker-ce 19.03.5 > qpid-proton 0.28.0 > qpid-cpp 1.37.0 > Reporter: Ryan Herbert > Assignee: Rakhi Kumari > Priority: Major > > The random number seed used in qpid-proton/cpp/src/uuid.cpp is based on the > current time and the PID of the running process. When starting multiple > proton instances simultaneously in Docker containers via automated > deployment, there is a high probability that multiple instances will get the > same seed since the PID within the Docker container is consistent and the > same across multiple copies of the same Docker container. > This results in duplicate link names when binding to exchanges. When this > happens, the queue gets bound to two different exchanges, and requests sent > to one exchange will get responses from both services. > To work around this error, we are specifying the link name via > sender_options/receiver_options every time we open a new sender/receiver, and > we also specify the container_id in connection_options. We are using > std::mt19937_64 seeded with > std::chrono::system_clock::now().time_since_epoch().count() to generate the > random part of our link names, which seems to have enough randomness that it > has eliminated the problem for us. > As pointed out in the Proton user forum, std::random_device is probably a > better choice for initializing the seed. > -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org