summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-01-12Major refactoring of queue handlers to support running multiple sites in one ↵Brion Vibber
daemon. Key changes: * Initialization code moved from common.php to StatusNet class; can now switch configurations during runtime. * As a consequence, configuration files must now be idempotent... Be careful with constant, function or class definitions. * Control structure for daemons/QueueManager/QueueHandler has been refactored; the run loop is now managed by IoMaster run via scripts/queuedaemon.php IoManager subclasses are woken to handle socket input or polling, and may cover multiple sites. * Plugins can implement notice queue handlers more easily by registering a QueueHandler class; no more need to add a daemon. The new QueueDaemon runs from scripts/queuedaemon.php: * This replaces most of the old *handler.php scripts; they've been refactored to the bare handler classes. * Spawns multiple child processes to spread load; defaults to CPU count on Linux and Mac OS X systems, or override with --threads=N * When multithreaded, child processes are automatically respawned on failure. * Threads gracefully shut down and restart when passing a soft memory limit (defaults to 90% of memory_limit), limiting damage from memory leaks. * Support for UDP-based monitoring: http://www.gitorious.org/snqmon Rough control flow diagram: QueueDaemon -> IoMaster -> IoManager QueueManager [listen or poll] -> QueueHandler XmppManager [ping & keepalive] XmppConfirmManager [poll updates] Todo: * Respawning features not currently available running single-threaded. * When running single-site, configuration changes aren't picked up. * New sites or config changes affecting queue subscriptions are not yet handled without a daemon restart. * SNMP monitoring output to integrate with general tools (nagios, ganglia) * Convert XMPP confirmation message sends to use stomp queue instead of polling * Convert xmppdaemon.php to IoManager? * Convert Twitter status, friends import polling daemons to IoManager * Clean up some error reporting and failure modes * May need to adjust queue priorities for best perf in backlog/flood cases Detailed code history available in my daemon-work branch: http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-12Avoid PHP notice when outputting API data for remote users; no $user means ↵Brion Vibber
no $user->timezone :) Trying to get property of non-object (/srv/com.leuksman.status/lib/api.php:171)
2010-01-12Ticket 2152: avoid fatal when php.ini disables dl via disabled_functions ↵Brion Vibber
(function_exists returns false even though it exists and cannot be redefined)
2010-01-11Fix format specifier on page titleZach Copley
2010-01-11Removed periodSarven Capadisli
2010-01-11Merge branch 'sessionidparam' into 0.9.xEvan Prodromou
Conflicts: lib/command.php
2010-01-11accept session fromEvan Prodromou
2010-01-10add session ID to local URL when server parts differEvan Prodromou
2010-01-10Sever -> server in error messageEvan Prodromou
2010-01-10Sever -> server in error messageEvan Prodromou
2010-01-10Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2010-01-10Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php
2010-01-10defaultDesign was undefined; fixed thatEvan Prodromou
2010-01-10catch exceptions from snapshotEvan Prodromou
2010-01-10Fix routes for social graph API methods -- this takes care of Ticket #2151Zach Copley
2010-01-10catch exceptions from snapshotEvan Prodromou
2010-01-10debugging code to find passed-in objects in munge_passwordEvan Prodromou
2010-01-10Lots of tiny message changes.Siebrand Mazeland
* Mostly punctuation updates so that the same message is used consistently in all of StatusNet. * Some cases of "Title Case" removed, because that does not appear to be used consistently.
2010-01-10Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.xSiebrand Mazeland
2010-01-10* L10n updates: consistent puctuationSiebrand Mazeland
* i18n updates: number parameters if more than one are being used
2010-01-09i18n work in the mail handlerCraig Andrews
2010-01-09Redirect to a one-time-password when ssl and regular server are differentEvan Prodromou
2010-01-08Add an IMAP daemon so StatusNet can process incoming user posts via ↵Craig Andrews
catch-all mailbox (in addition to the pre-existing script alias method)
2010-01-08Added i18n text for @title values in geo sharing actionsSarven Capadisli
2010-01-08Some code cleaning for geo UISarven Capadisli
2010-01-08Using json2.jsSarven Capadisli
2010-01-08let system administrators disallow certain admin panelsEvan Prodromou
2010-01-07ptiturl.com correct nameEvan Prodromou
2010-01-07add default plugin version informationEvan Prodromou
2010-01-07add a version action to give credit and list pluginsEvan Prodromou
2010-01-07add default plugins and load themEvan Prodromou
2010-01-07Correction to previous commitCiaran Gultnieks
2010-01-07Fixes to bugs where non-local messages were being wrong put in the public ↵Ciaran Gultnieks
timeline and public xmpp feed
2010-01-06Revert "Ticket 2107: remove "not implemented" items from sms/xmpp help; ↵Evan Prodromou
nobody likes being told what they can't do!" This reverts commit 5d9a2eb17e3f6e3bc73b5aa80625a365761b6689. These are commands that are/were implemented by Twitter, and we don't (yet) implemented. People will be looking for that information.
2010-01-06Ticket 2107: remove "not implemented" items from sms/xmpp help; nobody likes ↵Brion Vibber
being told what they can't do! Also broke up the localized help message into line-by-line pieces to ease translation maintenance.
2010-01-06The structure return by parse_url is an associative array, not an object.Craig Andrews
2010-01-06Don't output notices from deleted users.Zach Copley
2010-01-06Don't output notices from deleted users.Zach Copley
2010-01-05Support an 'extra' clause when definining a column (e.g.: 'on updateZach Copley
CURRENT_TIMESTAMP').
2010-01-05Cache fixes:Brion Vibber
* We now cache negative lookups; clear them in Memcached_DataObject->insert() * Mark file.url as a unique key in statusnet.ini so its negative lookups are cleared properly (first save of a notice with a new URL was failing due to double-insert) * Now using serialization for default in-process cache instead of just saving objects; avoids potential corruption if you save an object to cache, change the original object, then fetch the same key from cache again
2010-01-05Require users to login to view attachments on private sitesCraig Andrews
Thank you jeff-themovie for this implementation!
2010-01-05Move Authorization and Authentication plugin structures into core, instead ↵Craig Andrews
of as plugins. This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly.
2010-01-05Typo fix in the new default in-process cache; spewed notice warnings on ↵Brion Vibber
deletion, breaking XHR responses.
2010-01-04Ticket 2141: bugs with weighted popularity lists across year boundary.Brion Vibber
Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs... For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone. Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function.
2010-01-04Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2010-01-04default value for cache::get() changed from null to falseEvan Prodromou
2010-01-04Ticket 2141: bugs with weighted popularity lists across year boundary.Brion Vibber
Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs... For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone. Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function.
2010-01-04Fix for auto_increment parameter in auto-created tables via checkschema.Brion Vibber
Update FeedSub plugin for non-Plugin_DataObject setup and working checkschema updates.
2010-01-03Remove logging from default cacheEvan Prodromou
2010-01-02Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou