Removing warning message in ReaderProxy [4720]#425
Merged
Conversation
Member
richiware
approved these changes
Feb 20, 2019
Merged
MiguelBarro
pushed a commit
that referenced
this pull request
Apr 26, 2019
richiware
pushed a commit
that referenced
this pull request
Jul 2, 2019
* Refs #4720 Removing warning message (#425) * Creating a new PDP superclass * BuiltinProtocols now references a PDP superclass * Discovery-Server client implementation fulfill * PDPServer renamed to PDPClient * squash of all schema, parser and transport modifications * XMLParser update to new profiles * XMLParser update to new profiles * Modified RemoteServerAttributes xml schema to enforce that: * at least one multicast or unicast locator list MUST appear. * the locator list may appear in any order <xs:complexType name="RemoteServerAttributes"> <xs:choice> <xs:sequence> <xs:element name="metatrafficUnicastLocatorList" type="locatorListType" minOccurs="1" /> <xs:element name="metatrafficMulticastLocatorList" type="locatorListType" minOccurs="0" /> </xs:sequence> <xs:sequence> <xs:element name="metatrafficMulticastLocatorList" type="locatorListType" minOccurs="1" /> <xs:element name="metatrafficUnicastLocatorList" type="locatorListType" minOccurs="0" /> </xs:sequence> </xs:choice> <xs:attribute name="Prefix" type="guid" use="required"/> </xs:complexType> * StatefulReader modifications to allow unknown clients discovery * EDPSimple extensive modifications to allow TRANSIENT EDP Writers * Created a EDPListener ancestor for EDPSubListener and EDPPubListener * Adding new dll exports to allow external discovery handling * EDP matching correction * PDPListener Server List update corrections * PDP::notifyAboveRemoteEndpoints promote to virtual in order to solve WLP matching problem * Updated StatefulWriter to allow acknowledge assessment * PDPListener error correction. New method added to PDP. * corrected PDP match problem * Modified BuiltinProtocols to use a class factory for EXTERNAL discovery * Workaround for the endpoint.remoteLocatorList in PDPClient and EDPSimple * StatefulReader workaround to prevent clients message exchange with nonserver participants * Extended PDPType_t to BACKUP * DSClientEvent must be restart_timer() after creation to make it roll downhill * Add PDP mutex protection to builtin protocols server list to avoid sync problems. * Server list was accessed without using references with nefandous consequences. * matched_reader_add doesn't need a remoteLocatorList to work. Removed. * DSClientEvent made continuos announcement despite all servers were discovered. Now it stops when all are discovered and starts again when any of them vanishes. * minor aesthetic changes in PDPClient methods * Exporting message sending functionality to make it available to discovery-server. This changes would be undone when discovery-server becomes incorporated into the library. * There is a synchronization problem. PDP base implementation assumes that only m_participantProxies keeps references to ParticipantProxyData pointers. For example in PDP::removeRemoteParticipant only the access to m_participantProxies is mutex protected. The ParticipantProxyData objects were destroyed in a non protected code. PDPServer::match_all_clients_EDP_endpoints() run parallel to PDP::removeRemoteParticipant and use pData just destroyed. In order to solve this problem we must make not only the m_participantProxies access but also the specific pointers mutex protected. * PDP, PDPClient and PDPServer modified to make participant removal independent of the trigger cause (DATA msg received, lease duration timeout or future mechanisms). * Correcting schema type. discoverServerList -> discoveryServerList * Extend RemoteServerAttributes with a method to return its associated participant GUID_t. * Extended History API with reverse iterator to accelerate searching. * PDPClientr::announceParticipantState modified to use the cache sample_identity to avoid history duplications. * Modified PDP::announceParticipantState to allow all discovery metatraffic to be keyed in WriteParams. * Added EDPClient : public EDPSimple in order to key-sign the newly created DATA(w|r) * Correct EDP and PDP sequencing of the CacheChanges * Solved PDP callback synchronization issues. * Refs #5021 Fixing compilation issues on Linux. Removed debug folders. * Refs #5021 Fixed XMLParserTests' xml profile file. * In order to make easier Colcon use in discovery server all server funcionality was integrated into fast-RTPS library. * Refs #5021 Removed C++14 features. Fixed initialization order warning. * Refs #5021 Applied asio < 1.12 patch. * synchronization problem solved. PDP mutex must be used only to guarantee atomic access to discovery database. * It seems to be a lease duration event - participant destruction race condition overlook till now. I should ask fastRTPS team. * Detected 2 logical errors in PDPServer implementation: - A server shouldn't match another server's clients. Because a client would only match one server. DATA(p) contain information that helps us to manage this case. - PDPServer::removeParticipantForEDPMatch was passed a wrong argument (_p2match keeps references to ParticipantProxyData manage by PDP). Both errors are now corrected. * The only modification I introduced was when the DServerEvent thread is awakened: - bool PDPServer::initPDP(RTPSParticipantImpl* part) - At server creation (to try announce itself to other servers) - void PDPServer::queueParticipantForEDPMatch(const ParticipantProxyData * pdata) - when a new client announces itself (to match its endpoints) - bool PDPServer::removeRemoteParticipant(GUID_t& partGUID) - when a client is removed (to unmatch and trim the PDP and EDP caches) * DServerEvent must be awaked also when a publisher or subscriber is removed whenever trim is not successful at once. * Update the client and server event period to accelerate matching and reduce discovery times. * Client announcement must be replace because under certain settings prevents periodical HEARTBEAT. I copy the PDPServer announcement strategy. * Updated several attribute structures to avoid warnings on some examples compilation. * Refs #5021 Linux warnings. * comments update * solved VS class view issue. Lack of some headers inclusion. * changing client & server announcement strategy on participant shutdown * updating client & server announcement strategy on participant shutdown to reduce RTPSReader impact * Refs #5235 Added operator>> to EntityId * Updated lease duration strategy for client-server environment * Lease Duration mechanism updated for client-server framework * lease Duration synch problem solved * Solved simple discovery initialization issues. DATA(p) processing may overlap the initialization and cause lost of EDP discovery data. * removing warnings on test due library header dependencies changes * Gasco's code review comment's applied * Sources modified to prevent build errors. Note that StatefulWriter API changes forces a refactorization of the announcement mechanism in PDP client and server. Pending to solve blackbox test issues. * Blackbox TCP test issues solved. * xml parsing tests and examples corrected * Solving some bugs on server PDP initialization * Discovery issues on TCP transport solved. All clients have now a TCP listening port if using TCP transport. * Solve discovery server issue: TCP client addresses conflict on different processes. * solved linux connection issues on tpc * Solved little merge conflicts introduced above original merge commit * Solving serveral warnings highlighted by MAC compiler * amend to the last commit * Discovery service update. Now is mandatory that a TCP client defines a listening port. It was decided by quorum that dynamic allocation of tcp listening ports for clients was error prone is some scenarios. * solving minor MAC compilation issues * PDPType enum is now more properly called DiscoveryProtocol * BuiltinAttributes has now al discovery info grouped into a DiscoverySettings object * Solved some PDPClient and PDPServer announcement issues. Mutex protect the change sequence number and atomic access to server and client lists. * Rationalization of PDPServer mutex protection of member collections and EDP member collections. * Solved synchronization issue in server's handling of DATA(p[UD]) messages. * Solved synchronization issue in server's handling of DATA(p[UD]) messages. * std::make_unique is not availabe on C++11 * Add a warning on the properly lock order (PDP Writer and PDP mutexes) for announceParticipantState * Solved merge conflicts (mainly liveliness) with the current commit of develop (26b1f56) * BuiltinAttributes leaseDuration has now been moved into DiscoverySettings * DiscoverySettings operator== correction
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Guillaume (Clearpath) noticed the following warning:
"Requested Changes: 1068 [...] not found (low mark: 1067)"
This warning is no longer relevant after changes to ReaderProxy PR #411 and this PR removes it.