[ https://issues.apache.org/jira/browse/GEODE-8920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated GEODE-8920: ---------------------------------- Labels: pull-request-available (was: ) > Modify debug logging to make it easier to trace a message > --------------------------------------------------------- > > Key: GEODE-8920 > URL: https://issues.apache.org/jira/browse/GEODE-8920 > Project: Geode > Issue Type: Improvement > Components: membership > Reporter: Bruce J Schuchardt > Priority: Major > Labels: pull-request-available > > Debug logging in DirectChannel lets us know the IDs of receivers of a message > and the toString of the message but it's very difficult to figure out what > thread on the receiving end is supposed to process that message. > Here's an example of what we currently have: > [debug 2021/02/01 16:15:17.492 PST persistgemfire8_host1_8586 > <vm_9_thr_25_persist8_host1_8586> tid=0x4f0] Sending > (DLockRequestProcessor.DLockResponseMessage responding GRANT; > serviceName=__PDX(version 4); objectName=PDX_LOCK; responseCode=0; > keyIfFailed=null; leaseExpireTime=9223372036854775807; processorId=509; > lockId=509) to 1 peers > ([rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire9_host1_8517:8517)<ec><v51>:41005]) > via tcp/ip > This does not tell you anything about the receiver except its ID. On the > receiving side the thread that, in this run, would handle that message is > this: > persistgemfire9_host1_8517 <P2P message reader for > rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586)<ec><v51>:41006 > unshared ordered *uid=1036* dom #1 local port=47207 remote port=42068> > tid=0x51 > I've highlighted the *uid* here because that is the _uniqueId_ of the sending > Connection. If you looked through the logs or stack traces of the receiver > and knew the uniqueId of the sending Connection you could easily locate the > thread that should receive this DLockResponseMessage. Currently this is much > harder than it needs to be because the DirectChannel _Sending_ log message > doesn't include the _uniqueId_ of the Connections it is using to send the > message. > Let's change that log message to include the _uniqueId_ of each outgoing > Connection. Maybe something like this: > Sending (message.toString()) to 1 peers (peer ID)*, uid=1036* via tcp/ip > and on the receiving side we could be clearer about what the *uid* in the > thread's name means: > persistgemfire9_host1_8517 <P2P message reader for > rs-GEM-3166-PL1535a2i32xlarge-hydra-client-36(persistgemfire8_host1_8586:8586)<ec><v51>:41006 > unshared ordered *sender uid=1036* dom #1 local port=47207 remote > port=42068> tid=0x51 > or something like that. > Now we can look at the _Sending_ message and know that the receiving thread > will have _uid=1036_ in its name. Knowing this it ought to be possible to > write a program/script to trace a message and its consequences from one node > to another. -- This message was sent by Atlassian Jira (v8.3.4#803005)