Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007531opensim[GRID] Messaging Servicepublic2015-04-19 05:112018-03-06 02:24
ReporterRichardus Raymaker 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusnewResolutionopen 
PlatformwindowsOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0007531: V2 OfflineIM messages HG to HG don't get send to the user after logging in.
DescriptionI have a problem, many have the same problem. If some user from another grid, as example osgrid or metropolis is sending a message to you when your offline. It never arrives when the avatar is logging in. But, the message is stored into the database..

1) have avatar logged in on 1 grid and one on the other grid. the are friends
2) logout one avatar
3) send message to the offline avatar
4) login with the avatar that just did logout and you have send offline message to.
5) message dont get send to avatar

This is the string that's svaed into the database

'1', 'a067d26b-1536-4efd-a66d-431f0d5d790c', 'ec3f598a-87e4-4df7-8570-ee3e1e0be10a', '<?xml version=\"1.0\" encoding=\"utf-8\"?><GridInstantMessage xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" [^] xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><fromAgentID>ec3f598a-87e4-4df7-8570-ee3e1e0be10a</fromAgentID><fromAgentName>Richardus [^] Raymaker</fromAgentName><toAgentID>a067d26b-1536-4efd-a66d-431f0d5d790c</toAgentID><dialog>0</dialog><fromGroup>false</fromGroup><message>Offline Test</message><imSessionID>4c588be1-92d2-030a-231d-ad2113569806</imSessionID><offline>0</offline><Position><X>0</X><Y>0</Y><Z>0</Z></Position><binaryBucket>AA==</binaryBucket><ParentEstateID>1</ParentEstateID><RegionID>32cec3c0-5a12-11e4-8ed6-0800200c9a66</RegionID><timestamp>1429385671</timestamp></GridInstantMessage>', '2015-04-18 21:34:31'

This problem with offlineIM that dont work in hypergrid (robust server) is around sofar i remember for a long time. I dont see why V2 messages woirk fine until the point it need to be send to the avatar. At that point opensim seemns to ignore the offlineIM list or dont see the messages. I wish i did have a normal offlineIM string to compare. But cannot find that in the database back.

Using opensim 0.8.1 release.
TagsHypergrid
Git Revision or version number
Run Mode Grid (1 Region per Sim)
Physics EngineBulletSim
Environment.NET / Windows64
Mono VersionNone
Viewersingularity 1.8.6
Attached Files

- Relationships
related to 0006603closedMata Hari Hypergrid Friends problems between my stand-alone and OSG grid 
related to 0006769closedMata Hari HG friends issues 

-  Notes
(0028024)
Richardus Raymaker (reporter)
2015-04-19 05:17

This is done on var region (not have normal one available) but sending it to someone else that have normal region it failed to. we could not check the database from the other side.
(0028125)
Richardus Raymaker (reporter)
2015-04-29 05:36

Did the test again, created new avatar on my grid. made friends with my aavatar on osgrid.

-Logged the avatar off on my grid.
-Send a message from zauis plaza on osgrid to my offline avatar on own grid.
-Message get stored into the database
-logging in on my grid with the avatar.

No, message send to the viewer and avatar.
(0028546)
Richardus Raymaker (reporter)
2015-06-02 12:04
edited on: 2015-06-02 12:08

Here is my [messaging] config

[Messaging]
    ;# {OfflineMessageModule} {} {Module to use for offline message storage} {OfflineMessageModule "Offline Message Module V2" *}
    ;; Module to handle offline messaging. The core module requires an external
    ;; web service to do this. See OpenSim wiki.
    ; OfflineMessageModule = OfflineMessageModule
    ;; Or, alternatively, use this one, which works for both standalones and grids
    OfflineMessageModule = "Offline Message Module V2"

    ;# {OfflineMessageURL} {OfflineMessageModule:OfflineMessageModule Offline Message Module V2:Offline Message Module V2} {URL of offline messaging service} {}
    ;; URL of web service for offline message storage. Leave it commented if your service is local to the sim.
    ; OfflineMessageURL = ${Const|BaseURL}/Offline.php
    ; OfflineMessageURL = ${Const|BaseURL}:${Const|PrivatePort}

    ;# {StorageProvider} {Offline Message Module V2:Offline Message Module V2} {DLL that provides the storage interface} {OpenSim.Data.MySQL.dll}
    ;; For standalones, this is the storage dll.
    StorageProvider = OpenSim.Data.MySQL.dll

    ;# {MuteListModule} {OfflineMessageModule:OfflineMessageModule} {} {} MuteListModule
    ;; Mute list handler (not yet implemented). MUST BE SET to allow offline
    ;; messages to work
    MuteListModule = MuteListModule

    ;# {MuteListURL} {OfflineMessageModule:OfflineMessageModule} {} {} http://yourserver/Mute.php [^]
    ;; URL of the web service that serves mute lists. Not currently used, but
    ;; must be set to allow offline messaging to work.
    ; MuteListURL = http://yourserver/Mute.php [^]

    ;; Control whether group invites and notices are stored for offline users.
    ;; Default is true.
    ;; This applies to both core groups module.
    ForwardOfflineGroupMessages = true

and in gridcommon.ini

[Messaging]
    ; === HG ONLY ===
    ;; Change this to the address of your Gatekeeper service
    ;; (usually bundled with the rest of the services in one
    ;; Robust server in port ${Const|PublicPort}, but not always)
    Gatekeeper = "${Const|BaseURL}:${Const|PublicPort}"

(0028547)
BlueWall (administrator)
2015-06-02 12:24

Try enabling the MuteListURL = http://yourserver/Mute.php [^]

Just leave that url also, restart and see if it works for you.
(0028561)
aiaustin (developer)
2015-06-03 13:58

Should it be set by default in OpenSimDefaults.ini to a legal but dummy URL BlueWall to ensure everyone has something set?
(0028562)
Richardus Raymaker (reporter)
2015-06-03 14:49

Tried the MuteListURL after the meeting, but not did have any luck. Ill check it again.
(0028564)
AliciaRaven (manager)
2015-06-03 15:14

As promised at the meeting on Tuesday here is my messaging config. Including both Offline message settings and general IM settings. I tested again and messages sent from my OS avatar in OSGrid, are delivered to my local avatar when i next sign in.

Robust.ini

    [ServiceList]

    OfflineIMServiceConnector = "8003/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
    InstantMessageServerConnector = "80/OpenSim.Server.Handlers.dll:InstantMessageServerConnector"

    [Messaging]

    OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"

    [HGInstantMessageService]

    LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInstantMessageService"
    GridService = "OpenSim.Services.GridService.dll:GridService"
    PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
    UserAgentService = "OpenSim.Services.HypergridService.dll:UserAgentService"
    InGatekeeper = true

    [Groups]

    OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"

GridCommon.ini

    [Messaging]

    Gatekeeper = "http://www.example.com:80" [^]

OpenSim.ini

    [Messaging]

    OfflineMessageModule = "Offline Message Module V2"
    OfflineMessageURL = "http://www.example.com:8003" [^]
    MuteListModule = MuteListModule
    MuteListURL = "http://www.example.com/mute.php" [^]
    ForwardOfflineGroupMessages = true
(0028586)
Richardus Raymaker (reporter)
2015-06-04 07:10
edited on: 2015-06-04 10:33

Ok, done testing today. Using now the following config. tried different OfflineMessageURL settings. but wich one i try i never get offlienIM. deleted all old offlineIM made a new one. Still no luck. Right now the whole OfflineIM is broken for HG and local. Ands i cannot use port 8003, tried that combination privateIP:privateport but did not do anything too

[Messaging]
    OfflineMessageModule = "Offline Message Module V2"
    OfflineMessageURL = ${Const|BaseURL}:${Const|PublicPort}
    StorageProvider = OpenSim.Data.MySQL.dll
    MuteListModule = MuteListModule
    MuteListURL = http://yourserver/Mute.php [^]
    ForwardOfflineGroupMessages = true

-----

I now get in local and offlineIM the following error.

5-06-04 15:59:33,148 DEBUG - OpenSim.OfflineIM.OfflineIMRegionModule [OfflineIM.V2]: Retrieving stored messages for a067d26b-1536-4efd-a66d-431f0d5d790c
2015-06-04 15:59:33,164 ERROR - OpenSim.Region.ClientStack.LindenUDP.LLClientView [LLCLIENTVIEW]: Caught exception while processing OpenMetaverse.Packets.RetrieveInstantMessagesPacket for Richardus Raymaker
System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.LoadXml(String xml)
   at OpenSim.Server.Base.ServerUtils.ParseXmlResponse(String data) in d:\opensim-0.8.1-source\OpenSim\Server\Base\ServerUtils.cs:line 469
   at OpenSim.OfflineIM.OfflineIMServiceRemoteConnector.MakeRequest(String method, Dictionary`2 sendData) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\Remote\OfflineIMServiceRemoteConnector.cs:line 163
   at OpenSim.OfflineIM.OfflineIMServiceRemoteConnector.GetMessages(UUID principalID) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\Remote\OfflineIMServiceRemoteConnector.cs:line 91
   at OpenSim.OfflineIM.OfflineIMRegionModule.RetrieveInstantMessages(IClientAPI client) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\OfflineIMRegionModule.cs:line 172
   at OpenSim.Region.ClientStack.LindenUDP.LLClientView.HandleRetrieveInstantMessages(IClientAPI sender, Packet Pack) in d:\opensim-0.8.1-source\OpenSim\Region\ClientStack\Linden\UDP\LLClientView.cs:line 11695
   at OpenSim.Region.ClientStack.LindenUDP.LLClientView.ProcessSpecificPacketAsync(Object state) in d:\opensim-0.8.1-source\OpenSim\Region\ClientStack\Linden\UDP\LLClientView.cs:line 770


-----

This error came up when i did put my second local user offline and did send a message to it. i never got system message back.

2015-06-04 16:01:08,539 ERROR - OpenSim.Framework.Util [UTIL]: Util STP threadfunc 250 terminated with error
System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.LoadXml(String xml)
   at OpenSim.Server.Base.ServerUtils.ParseXmlResponse(String data) in d:\opensim-0.8.1-source\OpenSim\Server\Base\ServerUtils.cs:line 469
   at OpenSim.OfflineIM.OfflineIMServiceRemoteConnector.MakeRequest(String method, Dictionary`2 sendData) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\Remote\OfflineIMServiceRemoteConnector.cs:line 163
   at OpenSim.OfflineIM.OfflineIMServiceRemoteConnector.StoreMessage(GridInstantMessage im, String& reason) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\Remote\OfflineIMServiceRemoteConnector.cs:line 121
   at OpenSim.OfflineIM.OfflineIMRegionModule.UndeliveredMessage(GridInstantMessage im) in d:\opensim-0.8.1-source\OpenSim\Addons\OfflineIM\OfflineIMRegionModule.cs:line 230
   at OpenSim.Region.CoreModules.Avatar.InstantMessage.HGMessageTransferModule.HandleUndeliverableMessage(GridInstantMessage im, MessageResultNotification result) in d:\opensim-0.8.1-source\OpenSim\Region\CoreModules\Avatar\InstantMessage\HGMessageTransferModule.cs:line 258
   at OpenSim.Region.CoreModules.Avatar.InstantMessage.HGMessageTransferModule.<>c__DisplayClass3.<SendInstantMessage>b__2(Object ) in d:\opensim-0.8.1-source\OpenSim\Region\CoreModules\Avatar\InstantMessage\HGMessageTransferModule.cs:line 213
   at OpenSim.Framework.Util.<>c__DisplayClass9.<FireAndForget>b__2(Object o) in d:\opensim-0.8.1-source\OpenSim\Framework\Util.cs:line 2246


ADD: oops i see the muteurl is wrong set. i need to test it tonight again.

(0028590)
Richardus Raymaker (reporter)
2015-06-04 10:31

changed the config, offline local IM works again.
HG offlineIM still keeps sitting in the database

[Messaging]
    OfflineMessageModule = "Offline Message Module V2"
    OfflineMessageURL = ${Const|BaseInternalURL}:${Const|PrivatePort}
    StorageProvider = OpenSim.Data.MySQL.dll
    MuteListModule = MuteListModule
    MuteListURL = ${Const|BaseURL}/Mute.php
    ForwardOfflineGroupMessages = true
(0029792)
aiaustin (developer)
2015-12-09 04:58
edited on: 2015-12-09 05:03

Can I check if its okay to have the OfflineMessageURL be on the PrivatePort as indicated in OpenSim.ini.example? Is it only used within the grid, or does it need to be accessible to a foreign grid outside any firewall?

Also, if the MuteListModule = MuteListModule line is left commented out as in OpenSim.ini.example, is that okay.. and the correct default will be picked up? The comments say that it mist be set.. but its not clear if defaults enable that.

I am wondering if the issues might be something as simple as the Offline IM delivery attempt giving up if the foreign grid user is not online, rather than delivering the IM to the foreign grid normal IM mechanism and letting it be delivered if they are online or stored if offline IM is enabled on that grid, and it should only fail to deliver if the other user is both not online or the foreign grid does not support offline IMs. Its probably NOT wise to try to store it locally and deliver when the foreign grid user comes on line as that would require much probing and could fail forever.

(0029793)
aiaustin (developer)
2015-12-09 05:00
edited on: 2015-12-09 09:44

I am copying Mata Hari's observations of what works and what does not here from the OpenSim-dev mailing list at Mon, 7 Dec 2015 15:48:01 -0500 as they could be helpful...

In my testing:

- if both users are online and in their respective homes grids an IM
between them is *usually* but not always successful. In many cases when
I receive an IM from someone in either Metro or in OSGrid I have to tp
to their grid to be able to respond to it, even when they're online.
I've also been told that people have sent me an IM when I was online but
I never received it...this is a lot more likely to occur if I've been
HGed elsewhere and returned to my own grid so now any time I HG
anywhere I always log off, wait a couple of minutes, and then log in again.

- if both users are online and both in the same grid (even if it's a 3rd
grid) an IM will usually succeed

- if both users are online but the "target" of the IM is in a different
grid when an IM chat is initiated, it bounces back as though the HGed
user is offline and the message is never stored...to have an IM stored
for someone who is offline you have to HGTP to their grid and leave them
a message while you're there

- if both users initiate a conversation while in the same grid (or in
their respective home grids) and keep their IM chat boxes open, they can
often continue to communicate even when they subsequently both tp to
other different grids. As soon as the chat is closed they cannot resume
it and no messages are stored.

I assume the problem here is that as soon as you HGTP away from your
home grid it treats that as a log out (it doesn't track or monitor where
you are) so when an inbound IM comes into the grid it checks, sees
you're offline, and responds that way. I guess once an IM "session" is
initiated the two viewers know the target IP to send the messages to so
as long as the session remains open they're able to continue the
conversation no matter where they are. I would expect any undeliverable
IM to be stored as offline IM but for whatever reason they are
not...offline IM only works when the IM is initiated from within the
"target" user's grid. I also don't have the faintest idea why IMs
between myself and OSG/Metro users frequently seems to be so problematic
even when both of us are online in our home grids whereas I don't
encounter that problem with the majority of interactions with users in
other grids.

(0029794)
Mata Hari (reporter)
2015-12-09 07:33

In addition to the observations I made above (via AiAustin's paste of my dev list email) I suspect at least some of this is related to many of the issues I reported in 0006769 and 0006603
(0032576)
Jonathan Divisadero (reporter)
2018-03-06 02:24

Confirming this is still an issue system wide.

- Issue History
Date Modified Username Field Change
2015-04-19 05:11 Richardus Raymaker New Issue
2015-04-19 05:13 Richardus Raymaker Description Updated View Revisions
2015-04-19 05:17 Richardus Raymaker Note Added: 0028024
2015-04-21 10:55 Richardus Raymaker Description Updated View Revisions
2015-04-21 11:08 BlueWall Tag Attached: Hypergrid
2015-04-29 05:36 Richardus Raymaker Note Added: 0028125
2015-06-02 12:04 Richardus Raymaker Note Added: 0028546
2015-06-02 12:08 Richardus Raymaker Note Edited: 0028546 View Revisions
2015-06-02 12:24 BlueWall Note Added: 0028547
2015-06-03 13:58 aiaustin Note Added: 0028561
2015-06-03 14:49 Richardus Raymaker Note Added: 0028562
2015-06-03 15:14 AliciaRaven Note Added: 0028564
2015-06-04 07:10 Richardus Raymaker Note Added: 0028586
2015-06-04 07:11 Richardus Raymaker Note Edited: 0028586 View Revisions
2015-06-04 07:12 Richardus Raymaker Note Edited: 0028586 View Revisions
2015-06-04 07:14 Richardus Raymaker Note Edited: 0028586 View Revisions
2015-06-04 10:31 Richardus Raymaker Note Added: 0028590
2015-06-04 10:33 Richardus Raymaker Note Edited: 0028586 View Revisions
2015-12-09 04:58 aiaustin Note Added: 0029792
2015-12-09 05:00 aiaustin Note Added: 0029793
2015-12-09 05:00 aiaustin Note Edited: 0029793 View Revisions
2015-12-09 05:03 aiaustin Note Edited: 0029792 View Revisions
2015-12-09 07:33 Mata Hari Note Added: 0029794
2015-12-09 07:33 Mata Hari Relationship added related to 0006603
2015-12-09 07:33 Mata Hari Relationship added related to 0006769
2015-12-09 09:44 aiaustin Note Edited: 0029793 View Revisions
2018-03-06 02:24 Jonathan Divisadero Note Added: 0032576


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker