Commit Graph

507 Commits

Author SHA1 Message Date
Michael Bayne bb152eb27b Extract scheduleRegularReboot() into a method.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5604 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-12 23:50:20 +00:00
Michael Bayne c8e725d5e5 Log pong receipts as well.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5603 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-12 21:25:51 +00:00
Michael Bayne 91f1a3f893 Make the ping debugging optional since dev seems not to be failing now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-12 20:41:19 +00:00
Par Winzell 8b177eea6f I didn't mean to commit that.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5601 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-12 16:06:18 +00:00
Par Winzell fb4a28b2ed Give Bureaus their own client object subclass. It does nothing at the moment, but we need it to be a distinct type for access control purposes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5600 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-12 15:36:46 +00:00
Michael Bayne 82da1521f3 I swear this was generating unchecked type warnings before, but it seems not to
be now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5596 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-11 01:21:45 +00:00
Michael Bayne 47216207b3 Cleany cleany.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5595 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-11 01:12:51 +00:00
Michael Bayne f2b30890f9 Fix longstanding annoyance with proxy subscriber access control checking. If
we're proxying for a client, we now have to give up our ClientObject to anyone
who wants it, so that they can do access control checks.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5593 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-11 01:11:04 +00:00
Michael Bayne ec9e3331b9 Put some debugging in to see if we can figure out why the game server is
screwing the pooch on dev1.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5589 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-12-10 01:31:28 +00:00
Dave Hoover 34ae8910d7 Widen & break one thing out so I can avoid copy & paste when I format
a very similar message in the yohoho reboot manager.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5570 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-27 00:30:48 +00:00
Jamie Doornbos adf11c5381 Fixed index out of bounds exception. This was causing msoy aux reporters to never complete if the report type was not registered on the game server (e.g. servlet ony)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5568 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-24 23:01:16 +00:00
Mike Thomas a5b8aad082 Prevent a divide by zero that we're seeing occasionally on startup.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5567 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-21 00:22:51 +00:00
Ray Greenwell 7b9c0501a6 Added no-args generateReport() to generate default report.
There is a registerReporter() that doesn't take a type, so this
seemed like the way to go, rather than changing msoy to
pass in DEFAULT_TYPE.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5565 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 21:15:39 +00:00
Michael Bayne 457c8a59d6 Allow reporters to be registered for different report types and the type to be
specified at report generation time.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5564 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-19 19:53:46 +00:00
Michael Bayne 034284e103 Tuple.create -> Tuple.newTuple.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5559 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-18 21:15:43 +00:00
Michael Bayne 201ab6adc7 Turn off the debug report for now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5554 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-17 20:36:26 +00:00
Dave Hoover e1afaccd23 Cleanup some unused stuff & mark some overrides.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5547 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-12 18:46:06 +00:00
Michael Bayne 8890583476 If we are asked to end a session after the omgr has shutdown, just log
something friendly and drop the request. The server is about to go away.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5545 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-12 00:54:37 +00:00
Michael Bayne c16731c8d1 Let's enforce that client reference copying with the structure of ObserverOps.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5541 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 19:09:42 +00:00
Michael Bayne f4544ff76e Include current connection and handler count in our conmgr stats.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5539 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 18:47:58 +00:00
Michael Bayne a0cc2fd348 Nixed the notion of a ConnectionObserver. The only observer was the
ClientManager and it is already pretty tightly coupled to the ConnectionManager
so we weren't really fooling anyone with that ham-fisted attempt at
abstraction.

Also cleaned up more mid-shutdown behavior. If a session is unmapped after the
omgr exits, avoid generating a warning by trying to hop onto the omgr thread to
clean up after ourselves. We still do all the actual socket related closing so
that the party on the other end of the socket benefits from a clean shutdown
where possible.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5537 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 01:52:29 +00:00
Michael Bayne 2c0ca57551 Nix startup listener since that was only being used to shut everything down if
we fail to bind to any of our desired ports. We'll just do that automatically
because no one wants a totally hapless server sitting around unable to actually
accept any connections.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5536 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 01:04:08 +00:00
Michael Bayne 641967564c A bit of tidying. Move the shutdown related methods below all the methods
dealing with normal operation.

Nixed getFlattener() in favor of createDatagramSequencer() so that the
ConnectionManager doesn't have to expose its guts quite so much.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5535 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 00:54:59 +00:00
Michael Bayne 22762a5aa9 Added a count of how many socket events we see (sockets reporting ACCEPTable or
READable), tidied up some other bits.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5534 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 00:31:31 +00:00
Michael Bayne 58123a4df1 Added ConMgrStats.closes. Added code to dump conmgr stats to the log every 30
seconds so that we can see more about what's going on if we manage to recreate
our freakoutery.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5532 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 00:21:15 +00:00
Michael Bayne 065e5918e7 Comment clarification. Only the PresentsInvoker coordinates with the
PresentsDObjectMgr to achieve a coordinated shutdown.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5531 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-11 00:14:48 +00:00
Michael Bayne 9e1510c37d Some useful logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5526 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-08 02:34:19 +00:00
Michael Bayne 9a6e3e9fe9 Temporary fix for the local server timing out outgoing connections. I don't
think it should be needed but I need to do more testing, post-bling.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5517 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 03:14:46 +00:00
Michael Bayne eeb87f0721 Some new-style logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5516 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 01:50:58 +00:00
Michael Bayne 38e352443f Nixed more debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5513 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 01:27:12 +00:00
Michael Bayne c81f970590 Nixed debug logging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5512 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 01:26:59 +00:00
Michael Bayne c4909a5a5c We need to start our connect() process on the conmgr thread and we also need to
properly handle a connecting connection becoming idle.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5511 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 01:21:02 +00:00
Michael Bayne 89f02fc728 Created ServerCommunicator which does all I/O using the ConnectionManager's
polled socket system. This much more cleanly and efficiently integrates peer
(and other server to server) connections into the normal server I/O framework
and should also eliminate for good the annoying server hangs that result when
our old blocking client I/O threads got their pants wedged.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5510 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-07 00:27:07 +00:00
Michael Bayne b81ccde75b ClientFactory -> SessionFactory, etc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5509 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-06 18:24:44 +00:00
Michael Bayne c69630b7e0 PresentsClient -> PresentsSession (Jamie's suggestion) and associated changes
on down the client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5508 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-06 18:04:42 +00:00
Par Winzell f17e0efd07 The throttle update cannot be applied in a Runnable, or we get a race condition against the frames coming in from network. The actual _throttle is only ever access from the network thread, so only _pendingThrottles needs extra care.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5501 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 19:55:06 +00:00
Jamie Doornbos 7a3f264d43 Minor changes to previous fix. Log runnable, event or message that is being posted to the inactive queue. Remove instanceof check since the invoker will always be of the expected type
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5495 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:14:47 +00:00
Michael Bayne e843684637 Fix typo.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5494 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:01:45 +00:00
Michael Bayne f60713de17 Between the time that we're shutdown and the time that we finally exit, do not
accept new connections or read incoming messages from any of our extant
connections. Do send outgoing messages to those connections, but nothing else.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5493 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 23:00:07 +00:00
Jamie Doornbos e97d19476b Be less harsh and just log a warning in case some shutdown methods rely on posted events or messages being silently ignored (invoker still throws however, because it was throwing before)
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5492 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 22:49:25 +00:00
Jamie Doornbos 82d4f36c1a Fixes for shutdown sequence, including prevention of a race condition
* Throw an exception if any events, runnables or messages are posted after shutdown. These were previosuly being silently ignored. We really should know about them.
* Don't exit the connection manager thread until the object manager thread exits. This fixes a race condition where the wakeup time of the conmgr thread would determine if it shutdown before or after the object manager, meaning it would sometimes ignore messages around shutdown time.
* Add a shutdown constraint to make the client manager shutdown before the invoker/event/conmgr threads. This gives a single point in the shutdown sequence that applications can use as a constraint (TODO: shutdown groups?)
* Emit a log message for each shutdown method call. This could be very useful in production.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5491 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-03 22:20:16 +00:00
Michael Bayne 677e06b193 Let's have a nice toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5480 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 22:16:38 +00:00
Michael Bayne 6fd2882fa9 Actually we need to set up our local attribute here.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5476 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 20:02:51 +00:00
Michael Bayne d1be746bdb Created ClientLocal and BodyLocal which is where we'll track server-only
information.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5474 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-28 17:55:17 +00:00
Michael Bayne ded19474bc Added foo/s to various report output.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5468 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:59:24 +00:00
Michael Bayne 8aeb239f64 Only put our header on logged reports, not reports generated by explicit
callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5466 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-26 20:12:03 +00:00
Michael Bayne e52dae9a92 Accomodate up to one extra message per second in case the client is balls to
the wall. There are vagaries of timing that simply cannot be accounted for and
a client that spends too much time with its balls up against a proverbial hard
flat surface will eventually get disconnected, but we are now a bit more
lenient in handling ~10 second sustained bursts of activity.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5459 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 20:45:18 +00:00
Michael Bayne 1989531831 Mystery solved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5457 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-24 07:13:13 +00:00
Michael Bayne 2c35dbf0d0 Log this for a while while I debug the sporadic failure of session resumption
on Whirled.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5455 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-23 21:32:21 +00:00
Dave Hoover 31d0151815 Nope, those really are on PlaceManager, they're just protected so
my javadoc stuff freaked out since PresentsServer isn't allowed to 
see them. Point back to the right place.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5448 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-15 20:06:57 +00:00