kythyria / msnp-sharp

Automatically exported from code.google.com/p/msnp-sharp
0 stars 0 forks source link

Hidden Contact with Same PUID Already Exists #249

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. A login DotMsnClient
2. B login windows live messenger client 
3. B add A to its contact list
4. A accept B and add it to its contact list

What is the expected output? What do you see instead?
B should appear on A's contact list and B should see A online and vice verse.
But what I see is that B is not on A's list.
Instead, i see the exception in the trace form:
ContactService: DeleteMember completed: PendingList
ContactService: ABContactAdd: System.Web.Services.Protocols.SoapException: 
Hidden Contact with Same PUID Already Exists 
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.InvokeAsyncCallback(IAsyncResult result)
ContactService: DeleteMember: System.Web.Services.Protocols.SoapException: 
Member does not exist 
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.InvokeAsyncCallback(IAsyncResult result)
ContactService: DeleteMember completed: PendingList

What version of the product are you using? (MSNPSharp, OS, Mono etc.)

Is your code check out from SVN or download from our download site?
latest truck from svn

Please provide any additional information below:
I will try 3.1 stable code to see if the same problem exists.

Original issue reported on code.google.com by shoujies...@gmail.com on 26 Jan 2011 at 2:06

GoogleCodeExporter commented 9 years ago
I just repeat the steps on 3.1.1 stable code and find the same exception 
happened.

Original comment by shoujies...@gmail.com on 26 Jan 2011 at 2:20

GoogleCodeExporter commented 9 years ago
It is the first time for A to add contact B. So the soap message is strange to 
me.

Original comment by shoujies...@gmail.com on 26 Jan 2011 at 2:24

GoogleCodeExporter commented 9 years ago
To reproduce the issue:

1) Download and Install Fiddler: http://www.fiddler2.com/fiddler2/version.asp
2) Open Fiddler2 and select "AutoDecode" button to decompress gzip 
automatically. From menu, select Tools - Fiddler Options - HTTPs. Tick capture 
https, decrypt https and install temporary certificates displayed. Restart 
Fiddler2.
3) Open msnpsharp example client and accept invitation. Don't close fiddler.
3) Open official client and accept again. Don't close fiddler.
4) Fiddler - File - Save - all sessions and attach the fiddler.saz here.

Original comment by hepha...@gmail.com on 27 Jan 2011 at 12:57

GoogleCodeExporter commented 9 years ago
I followed you steps to reproduce the problem. the same error message happened 
again.

In your step 3, when i opened the official client, there was no invitation 
prompted. instead, i accepted the invitation by a link appeared on the 
messenger on the web.

All steps are recorded in the attachment file per your instruction. Thank you 
for a quick response :-)

Original comment by shoujies...@gmail.com on 27 Jan 2011 at 2:59

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Hi,
Can you repeat the same procedure again with a WLM client and send us the 
captured data?

Original comment by freezing...@gmail.com on 27 Jan 2011 at 7:56

GoogleCodeExporter commented 9 years ago
Client A sent invitation to Client B.
It seems working well on WLM. my client version is 2009(14.0.8117.416)

Original comment by shoujies...@gmail.com on 28 Jan 2011 at 1:54

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by freezing...@gmail.com on 29 Jan 2011 at 2:11

GoogleCodeExporter commented 9 years ago
Ethem,

In line 1192 of ContactService.cs, I think it should be 
request.contacts[0].contactInfo.contactType = MessengerContactType.LivePending;

Just look at official client's behavior, I want to change this a long time ago, 
but not sure I am right or not.

Original comment by freezing...@gmail.com on 29 Jan 2011 at 2:23

GoogleCodeExporter commented 9 years ago
And there's also a ABFindByContacts call, but I don't know from where it get 
the guid.

Original comment by freezing...@gmail.com on 29 Jan 2011 at 5:44

GoogleCodeExporter commented 9 years ago
I don't think so contactType=regular is problem. See r746 log. The contact 
couldn't added if added before. It generates a new error: "Dynamic item already 
exists"

The official client generates the same error, but it doesn't show any warning.
See attached clientb.saz, no:68...
The contact GUID is here: conflictObjectId

{{{
<?xml version="1.0" encoding="utf-8"?><soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>s
oap:Client</faultcode><faultstring>Hidden Contact with Same PUID Already Exists 
</faultstring><faultactor>http://www.msn.com/webservices/AddressBook/ABContactAd
d</faultactor><detail><errorcode 
xmlns="http://www.msn.com/webservices/AddressBook">ContactAlreadyExists</errorco
de><errorstring xmlns="http://www.msn.com/webservices/AddressBook">Hidden 
Contact with Same PUID Already Exists </errorstring><machineName 
xmlns="http://www.msn.com/webservices/AddressBook">SN1ABCHWB68</machineName><add
itionalDetails><conflictObjectId>EBEC29B8-FD5F-4E50-A258-0FE54B3C484F</conflictO
bjectId></additionalDetails></detail></soap:Fault></soap:Body></soap:Envelope>
}}}

Original comment by hepha...@gmail.com on 29 Jan 2011 at 9:15

GoogleCodeExporter commented 9 years ago
Hi, thanks for looking into the problem.
For testing purpose, I register 2 new accounts. So I think it is the first time 
for A to add B into its contact list.

Original comment by shoujies...@gmail.com on 29 Jan 2011 at 9:31

GoogleCodeExporter commented 9 years ago
You welcome,

Pang got the point to solve this issue. Please wait the fix...

Official client does:

1- If Hidden Contact with Same PUID Already Exists, inserts contact guid into 
conflictObjectId tag.
2- Calls ABFindByContacts soap function to get contact.
3- Calls ABContactUpdate with IsMessengerUser MessengerMemberInfo properties.

Thank you for the report again. 

Original comment by hepha...@gmail.com on 29 Jan 2011 at 9:48

GoogleCodeExporter commented 9 years ago
Owner is Pang. :)

Original comment by hepha...@gmail.com on 29 Jan 2011 at 9:53

GoogleCodeExporter commented 9 years ago
Ah, I've ignored #68, no wonder.. let me fix it.

Original comment by freezing...@gmail.com on 29 Jan 2011 at 6:28

GoogleCodeExporter commented 9 years ago
I've fixed it in the trunk, Ethem could you please merge it to 3.1?

Original comment by freezing...@gmail.com on 30 Jan 2011 at 5:22

GoogleCodeExporter commented 9 years ago
This issue was updated by revision r1957.

Original comment by hepha...@gmail.com on 30 Jan 2011 at 10:50