Commit Graph

141 Commits

Author SHA1 Message Date
Michael Bayne d00619fe4d Log a stack trace if we choke during the resolution process.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2230 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-02-01 04:43:47 +00:00
Michael Bayne 52c62d3e3d The beginnings of a system for profiling the amount of time spent
processing invocation units. It needs a timer with much finer granularity
than one millisecond to be useful.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2223 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-27 22:56:29 +00:00
Michael Bayne 7ff7ddc740 Not to freak out if we've lost our connection before we get around to
sending the bootstrap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2216 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-24 21:36:04 +00:00
Michael Bayne 8bafb6fd32 Specifically ACK unsubscribe requests so that we don't see a bunch of
warning messages saying that we couldn't deliver events on the client that
come in after all client-side subscribers have been removed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2204 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-21 22:02:37 +00:00
Walter Korman a2867539bc Log interesting system information on server startup; logging at start of
init() also provides immediate feedback re: the server starting up and a
timestamp in the log against which subsequent action timeliness may be
weighed.  I suspect mdb will decide this is better off residing in the
Yohoho-specific server and outputting to something like the server state
audit log, but I like it here and so I've forged ahead.  If this does get
the axe, I still claim that logging "Server starting up..."  as the first
business in init() is useful and desirable.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2143 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-14 22:36:58 +00:00
Michael Bayne de0ea7b464 Dump a stack if we can't find our invocation receiver registration.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2092 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-02 22:08:30 +00:00
Michael Bayne 6c3d9fba65 More goddamned fiddling to attempt to respond gracefully to any of the
wide variety of fucked up situations that might occur:

- Client authenticates and disconnects before their client object is
  resolved.
- Client authenticates and requests to end their session before their
  client is resolved.
- Client does one of the two previous actions and then attempts to
  reestablish a session before the client object is resolved from their
  first connection attempt.
- Client establishes a session in any of the previous or a normal
  circumstance but their client object fails to resolve.

Goddamned distributed programming, race-condition cluster fuck, strange
shit happening once in a blue moon business.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2086 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-22 19:16:31 +00:00
Michael Bayne f7786e0737 Make the actual InetAddress instance available.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2085 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-22 19:13:38 +00:00
Michael Bayne f13bfa62aa Allow the state of the server report to be logged in a custom manner.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2084 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-22 07:27:20 +00:00
Michael Bayne 8ceb0e09e7 Made the connection's IP address available to interesting parties.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2083 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-22 06:36:30 +00:00
Michael Bayne b35f81cb62 A little more analysis revealed that we can avoid attempting to resume a
user's session if their client object is not yet resolved. When it does,
their session will be "started" for the first time and everything will
work itself out.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2068 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-15 18:32:19 +00:00
Walter Korman 90a919720a Removed code to disallow adding an observer more than once since the
observer list now takes care of that.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2064 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-12 23:56:36 +00:00
Michael Bayne d60e6a69d8 Implemented code to handle the rather complicated circumstance of not
being able to send a message immediately to the client due to it being too
large or the client's outgoing networking buffer being full for some other
reason (many messages sent very quickly or client that's reading messages
slowly).

I still need to add code to disconnect a client who fails to read messages
in a sufficiently timely manner.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2038 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-07 22:33:04 +00:00
Michael Bayne 0749a20e6e Rejiggered endSession() so that overridden sessionDidEnd() methods can
call super.sessionDidEnd() and still do things with the client object at
the termination of the session.

Also removed the passing of the client object to sessionConnectionClosed()
because it's still possible that it won't be avaiable when that method is
called and whatever is being done there should also be done in
sessionDidEnd() if it is to work when the user ends their session as well
as when they disconnect.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2027 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-05 16:20:45 +00:00
Michael Bayne e91215b689 Explicitly pass along the client object to sessionConnectionClosed()
because it will have been cleared out of _clobj by the time said method is
called if it is called as a part of a terminated session.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2021 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-04 02:47:03 +00:00
Michael Bayne 55f40108b8 Added simple mechanism to resolve a client, apply some operation to it and
release it back into the wild.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2010 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-29 23:40:32 +00:00
Michael Bayne 1c726c8e33 Removed stray newline.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2009 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-29 23:40:01 +00:00
Michael Bayne f7c27a1afa Added a mechanism to check that we are running on (or not on) the
distributed object event dispatch thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2005 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-28 22:51:52 +00:00
Michael Bayne 0353289965 No need to remain subscribed to the client object once we've resolved it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1994 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 08:52:53 +00:00
Michael Bayne 371ca60bf5 Replaced old wacked-in-head system with proper reference counting for
client objects.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1989 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 02:14:25 +00:00
Michael Bayne 9a022a98cc We want to bind to INADDR_ANY rather than localhost specifically.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-18 18:56:52 +00:00
Michael Bayne 45fb96c4f2 Rewritten to use the Java NIO library rather than the Berkeley NBIO
library. 100% pure baby! At least for the moment.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1958 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-18 18:53:10 +00:00
Walter Korman 4f4068a00a Fixed typo in log message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1924 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-06 21:05:13 +00:00
Michael Bayne 9e9dc24b72 Need to put this in a config file, but for the time being, up the "state
of the union" report to once every 15 minutes.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1922 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-06 06:18:17 +00:00
Michael Bayne 0cd73d2e56 Expose a calldown method that is called on the dobjmgr thread when a
client loses their connection (either gracefully or not).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1898 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 05:47:36 +00:00
Michael Bayne fa206b76ed Metrics! Added support for a "state of the server" report, in which
managers can participate, reporting lies, damned lies and useful
statistics. Initial participants include the client manager, the
connection manager and the distributed object manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1894 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 02:17:56 +00:00
Michael Bayne 2e32b6c3a7 Periodically scan the clients table and end the session of any expired
clients.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1872 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-31 21:04:19 +00:00
Michael Bayne 79259479c6 Make a note of when we started our session and when we most recently
connected or disconnected. Use this to determine if a client has "expired"
(meaning they've been disconnected for too long).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1871 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-31 21:03:57 +00:00
Michael Bayne 98d19e055a Added facilities for idling out clients that have not communicated with
the server in 90 seconds. The client is set up to ping the server if it
has had nothing to say to it for other reasons in the last 60 seconds.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1860 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-29 23:51:26 +00:00
Michael Bayne 34e777c444 Debug log fiddle.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1848 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-27 22:24:59 +00:00
Walter Korman fec48b8586 Track a user's connection status in their occupant info so that we can
react to player disconnection, idle (implementation still pending), and
reconnection appropriately.  Added PlaceManager.bodyUpdated().


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1831 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-26 02:40:30 +00:00
Walter Korman ad344e05e1 Fixed typo in javadoc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1830 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-26 02:37:59 +00:00
Michael Bayne a0e9044e93 Config clean up and unification. The base servers were doing more than
they needed to and when all that was stripped away, they didn't really
need their own config files.

Now what little config they need is provided by the users of these basic
services so that said users can make their own decisions about where to
obtain configuration information.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1820 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-21 20:56:21 +00:00
Michael Bayne d49e724693 Don't start up the connection manager until the dobject manager has
processed everything put into its queue during the initialization process.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1767 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-10-01 05:15:45 +00:00
Michael Bayne e2687d5474 Less debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1757 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-26 17:49:36 +00:00
Michael Bayne 6c7bee6c1d Logging cleanups.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1747 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-24 00:51:01 +00:00
Michael Bayne 6f2da6a584 Use StringUtil and hopefully we'll actually get address information.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1746 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-24 00:50:27 +00:00
Michael Bayne 487bbec942 Added call down methods so that derived client instances can react to
a changing client object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1727 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-20 20:42:37 +00:00
Michael Bayne 775246906b Added support for clearing out dispatcher registrations.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1724 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-20 04:52:49 +00:00
Michael Bayne ba4985053f Revamped "persona selection" support. Things now actually work, and in as
sensible a way as we can hope for.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1717 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-19 23:36:59 +00:00
Michael Bayne 8b7e880d3c Not to log the whole user object.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1711 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-18 18:40:20 +00:00
Walter Korman 4fa88cd501 Fixed javadoc typo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1707 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-18 01:10:27 +00:00
Michael Bayne fc1232b98b Added means by which client's username can be changed (very carefully).
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1684 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-16 23:34:25 +00:00
Michael Bayne 3d5ae4becb Report the caller rather than their oid for failed service requests.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1666 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-06 01:49:23 +00:00
Michael Bayne 99edb5cd5e Regenerated services and receivers to fix bugs and use updated templates.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1659 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-08-20 19:38:16 +00:00
Michael Bayne e54a4d41f4 The great invocation services rethink of 2002! Rearchitected the remote
method invocation services and converted everything to the new style.
Could this be my biggest checkin ever?


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1642 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-08-14 19:08:01 +00:00
Michael Bayne d06aeb2cc7 Shut the server down if we were unable to initialize it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1616 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-25 20:24:02 +00:00
Michael Bayne 1877aacb3b Report the port to which we attempted to bind in the event of a bind
failure.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1615 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-25 20:23:25 +00:00
Michael Bayne c3191b9170 Brought code into line with the new streaming world order.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1606 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-23 05:52:49 +00:00
Michael Bayne 71c392555f Fixed bug in dobj reference management.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1581 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-17 01:54:33 +00:00