Commit Graph

320 Commits

Author SHA1 Message Date
Michael Bayne a5367cb657 Only complain about big overflow queues every time we reach a new plateau
of 50 messages.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2786 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-20 18:54:23 +00:00
Michael Bayne 46f4426e64 Warn on large overflow queue size.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2781 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-20 00:47:39 +00:00
Michael Bayne f013aba02b Additional robustness: mark the server dobjmgr internal events as private
and refuse subscriptions to invalid oids (it's not out of the realm of
possibility that the clients were somehow subscribing to oid 0 and funny
things were happening).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2778 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-16 04:14:56 +00:00
Michael Bayne 6c1274eef3 This should never be sent over the wire, but it is somehow, sometimes, and
by making these transient we can hopefully debug it more effectively if it
happens in the future.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-15 18:50:02 +00:00
Michael Bayne ef17c4487e Would you believe, we still missed a fricking newline.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2771 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-13 22:46:13 +00:00
Michael Bayne c9f9cfe34d Fix up registered interval reporting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2770 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-13 21:38:37 +00:00
Michael Bayne 72674bbf49 Report the number of intervals registered as well as the number fired in
the reporting interval. Now we can see if we're leaking intervals (which
would be double plus ungood).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2769 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-13 21:05:28 +00:00
Michael Bayne c289da2150 They're big, they're partial and we don't need to hear about 'em!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2762 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-09 05:00:01 +00:00
Ray Greenwell b59b9b5954 New very safe shutdown scheme. An Invoker.Unit runs on both the Invoker
and dobj thread until they're both empty (or it has been passed 50 times)
and then shuts the threads down.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2744 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-08-08 03:11:55 +00:00
Michael Bayne 493c75b865 Make client and connection count information available.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2718 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-07-22 02:50:49 +00:00
Michael Bayne 8e158dd1e8 Let's get the class name in there as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2660 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-15 16:47:33 +00:00
Michael Bayne 7d98a59c1c Enable unit profiling and keep an eye out for exceptionally long running
units.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2652 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-06-12 22:10:07 +00:00
Michael Bayne 8d9b9f69d2 Quick hack to (hopefully) fix weird problem while I investigate.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2607 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-24 01:50:33 +00:00
Michael Bayne d76d4e89ff Make it possible to have a distributed object destroyed when its last
subscriber is removed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-22 17:23:53 +00:00
Michael Bayne c93802c455 Off with the verbose logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2565 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-05-10 01:05:33 +00:00
Michael Bayne 201ee0acf3 Don't log the whole message, just the class.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2484 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 07:53:31 +00:00
Michael Bayne e1b4198d8f Let's just report the type of message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2470 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-27 01:32:08 +00:00
Michael Bayne 1b1c38c998 Added tracking and reporting of messages sent and received; shaved 20 off
loc by combining message dispatch into one method.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2397 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-10 18:12:16 +00:00
Michael Bayne 36624d96ac Finally got around to making compound events actually stick together until
they arrive at the client. Mmm... network efficiency++.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2396 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-04-10 17:48:42 +00:00
Michael Bayne b20a6633b9 Modify the dobjmgr and invoker such that they process the rest of their
queue and then shutdown.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2365 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-31 04:11:24 +00:00
Michael Bayne b009981c5f Refuse repeat shutdown requests.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2364 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-31 04:11:01 +00:00
Michael Bayne 23ec0c58ec Shut down all nice and happy like when we get a ctrl-c.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2361 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-31 02:10:37 +00:00
Michael Bayne 34cd22cc18 Need to register as a shutdowner.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2359 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-30 21:27:23 +00:00
Michael Bayne f275f57a3b Make shutdown() an instance method so that it can be augmented.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2358 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-30 21:27:13 +00:00
Michael Bayne 057a5458ad Have the client manager let the clients know that they are being shutdown.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2357 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-30 21:04:18 +00:00
Michael Bayne 1655f680aa Added a mechanism for participating in server shutdown.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2356 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-30 20:40:47 +00:00
Michael Bayne 36bcb083ca Added a constructor that takes a message bundle and a code and creates a
qualified error code with them.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2308 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-17 19:21:45 +00:00
Michael Bayne ef525ebad9 Modified DSet support such that additions, updates and removals are
applied immediately on the authoritative copy of the object (the one on
the server). We already do this for all other object modifications (except
OidList which is kind of special anyway), but we should be wary of
potential wickosity.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2302 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-10 18:29:54 +00:00
Michael Bayne 687dc5f564 Map client connections by normalized auth username rather than credentials
instances.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2294 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-02 03:47:06 +00:00
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