summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)Author
2010-01-21XMPP queued output & initial retooling of DB queue manager to support ↵Brion Vibber
non-Notice objects. Queue handlers for XMPP individual & firehose output now send their XML stanzas to another output queue instead of connecting directly to the chat server. This lets us have as many general processing threads as we need, while all actual XMPP input and output go through a single daemon with a single connection open. This avoids problems with multiple connected resources: * multiple windows shown in some chat clients (psi, gajim, kopete) * extra load on server * incoming message delivery forwarding issues Database changes: * queue_item drops 'notice_id' in favor of a 'frame' blob. This is based on Craig Andrews' work branch to generalize queues to take any object, but conservatively leaving out the serialization for now. Table updater (preserves any existing queued items) in db/rc3to09.sql Code changes to watch out for: * Queue handlers should now define a handle() method instead of handle_notice() * QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning thread management (RespawningDaemon) infrastructure. * The polling XmppConfirmManager has been dropped, as the message is queued directly when saving IM settings. * Enable $config['queue']['debug_memory'] to output current memory usage at each run through the event loop to watch for memory leaks To do: * Adapt XMPP i/o to component connection mode for multi-site support. * XMPP input can also be broken out to a queue, which would allow the actual notice save etc to be handled by general queue threads. * Make sure there are no problems with simply pushing serialized Notice objects to queues. * Find a way to improve interactive performance of the database-backed queue handler; polling is pretty painful to XMPP. * Possibly redo the way QueueHandlers are injected into a QueueManager. The grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21drop debug line from xmppdaemon.php, we're done debugging thatBrion Vibber
2010-01-19Extra debug instrumentation for xmppdaemonBrion Vibber
2010-01-15--xmpp-only hack for queuedaemon.php to run separate queue daemon with only ↵Brion Vibber
xmpp threads
2010-01-14temporary --skip-xmpp flag on queuedaemon.php, allows to run queue daemons ↵Brion Vibber
but skip subscription to xmpp-based queues (still working on making these behave gracefully when server is down)
2010-01-13actually use the user id instead of 0 ;)Brion Vibber
2010-01-13in case we have cached 'fake' inboxes, make sure we rebuild them running ↵Brion Vibber
initializeinbox.php
2010-01-13Gracefully skip missing user entries when initializing inboxes in bulkBrion Vibber
2010-01-13accept file for initializeinbox.phpEvan Prodromou
2010-01-13Update generation of YAML filesSiebrand Mazeland
* need lower case in some places * update target path Not in production yet at translatewiki.net - need some Translate extension code changes to get YAML config support for Gettext first.
2010-01-13add a script for initializing inboxesEvan Prodromou
2010-01-12Merge branch '0.9.x' into inblobEvan Prodromou
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-11Merge branch '0.9.x' into inblobEvan Prodromou
2010-01-11fix long options on deleteuser.phpBrion Vibber
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-09Merge branch 'inblob' of git@gitorious.org:~evan/statusnet/evans-mainline ↵Evan Prodromou
into inblob Conflicts: classes/Inbox.php classes/Notice.php classes/Notice_inbox.php
2010-01-09remove triminboxes.php; it's no longer usedEvan Prodromou
2010-01-09Revert "Replace Notice_inbox with Inbox"Evan Prodromou
We use Notice_inbox to transition to Inbox. This reverts commit 7640d3f07bad0710d69575efc7ceda115f24a60a.
2010-01-09Replace Notice_inbox with InboxEvan 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-06suppress notice for undefined prompt variable when console.php is used from ↵Brion Vibber
non-interactive terminal
2010-01-05Add an RSSCloud queue handler daemonZach Copley
2010-01-04free some memory in createsim.phpEvan Prodromou
2010-01-04Merge branch 'batchlocation'Evan Prodromou
2009-12-31Script to update the location ID for usersEvan Prodromou
Since we added locations to the database, some users may have location strings in their profiles but not structured locations. This script updates the locations for single users or for all users.
2009-12-30Replace Notice_inbox with InboxEvan Prodromou
2009-12-29Add progress output and optional --sleep-time parameter to triminboxes.phpBrion Vibber
2009-12-24add setconfig.php script to set configuration optionsEvan Prodromou
2009-12-15remove dead code for handling direct messages, now done with commandsEvan Prodromou
2009-12-14Clean up console output for non-interactive mode (handy for batch setup scripts)Brion Vibber
2009-12-11Make useremail.php executableBrion Vibber
2009-12-11Added UserEmail script.Christopher Vollick
Used to query user's emails. Mostly used for administration, to see if a user requesting something is who they say. Also, some people assume that the admin knows this data, and says things like: "If you could do _____ with the account connected to this email". It'd be nice if we could do that without raw SQL.
2009-12-08New _m() gettext wrapper with smart detection of plugin domains. Plugin base ↵Brion Vibber
class registers your gettext files if present at initialization. update_pot.sh replaced with update_po_templates.php which can do core, plugins, or all (default). Top-level Makefile added to build .mo files for plugins as well as core. As described on list: http://lists.status.net/pipermail/statusnet-dev/2009-December/002869.html
2009-12-08Tweak updateavatarurl.php: emit a newline whether we're on verbose or ↵Brion Vibber
non-quiet, emit help when no users specified.
2009-12-07Grand ALL permissions to the DB user when setting up a new status.net site.Zach Copley
2009-12-03Code style cleanup: dropped some unnecessary =& reference assignments where ↵Brion Vibber
they're used only out of habit for PHP 4-style object semantics
2009-12-03Do not rebuild/add .mo files by defaultSiebrand Mazeland
FIXME: should be made a command line parameter.
2009-12-02add pluginhandler to list of daemons to shut downEvan Prodromou
2009-11-30make checkschema.php executable (which makes sense, cause the README says to ↵Craig Andrews
run it :-) )
2009-11-30Merge branch 'master' into 0.9.xZach Copley
* master: (67 commits) Ticket 2038: fix bad bug tracker link Fix regression in group posting: bug introduced in commit 1319002e1519fafb0e82fbfd2d2723abdb3112e7. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D Log database errors when saving notice_inbox entries Drop the username from the log id for now; seems to trigger an error loop in some circumstances request id on logs... pid + random id per web request + username + method + url Add OpenID ini info back into statusnet.ini as a stopgap until we can Some changes to the OpenID DataObjects to make them emit the exact same OpenID plugin should set 'user_openid.display' as unique key Remove relationship: user_openid.user_id -> user.id. I don't think this Have OpenID plugin DataObjects emit their own .ini info Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them" Catch and report exceptions from notice_to_omb_notice() instead of letting the OMB queue handler die. Fix regression in remote subscription; added hasRole() shadow method on Remote_profile. Fix fatal error on OMB subscription for first-timers Remove annoying log msg Drop error message on setlocale() failure; this is harmless, since we actually have a working locale set up. Catch uncaught exception Fixed bug where reply-sync bit wasn't getting saved Forgot to render the nav menu when on FB Connect login tab Facebook plugin no longer takes over Login and Connect settings nav menus ... Conflicts: db/08to09_pg.sql db/statusnet_pg.sql locale/pt_BR/LC_MESSAGES/statusnet.mo plugins/Mapstraction/MapstractionPlugin.php
2009-11-21Do not use fuzzy in the compiled messages files.Siebrand Mazeland
2009-11-20start for pluginqueuehandlerBrion Vibber
2009-11-20start for pluginqueuehandlerBrion Vibber
2009-11-19Merge branch '0.9-release'Zach Copley
* 0.9-release: (874 commits) Removed call to NewDirectMessage() until IE return is fixed i.e., Don't show flag user button your own profile Fixed HXR response for flag user Using the right form class name Using common_redirect Left a form_data class of a <ul> in the user admin panel Added validation to fields in user admin panel Added a user admin panel Added mobile logos for default and identica themes Changed gif to png Changed this to action. THANKS zach! Doing content negotiation only once Add execute bit to pingqueuehandler Localisation updates for !StatusNet from !translatewiki.net Use the browser's geolocation API to set the location on the notice form Add geometa library, and include it. Add location form elements to the noticeform, and save their values on submission Use the $user object nickname, as login name doesnt have to == nickname anymore with plugins such as ldap/etc Revert "Re added NICKNAME_FMT constant to router.php." Moved most path and server settings to a new paths admin panel ... Conflicts: js/util.js locale/it_IT/LC_MESSAGES/statusnet.mo locale/mk_MK/LC_MESSAGES/statusnet.mo locale/mk_MK/LC_MESSAGES/statusnet.po locale/pt_BR/LC_MESSAGES/statusnet.mo locale/vi_VN/LC_MESSAGES/statusnet.mo plugins/InfiniteScroll/infinitescroll.js plugins/Realtime/realtimeupdate.js
2009-11-19Add execute bit to pingqueuehandlerZach Copley
2009-11-19Removing "join-existing". Do not add on update, just rebuild complete pot. ↵Siebrand Mazeland
The pot file gets really dirty, really quickly.
2009-11-18Added support for pgettext() and npgettext() to separate contexts for ↵Brion Vibber
translatable messages that are going to be ambiguous in English original.
2009-11-17A little cleanup on console.php; save readline history more aggressively; ↵Brion Vibber
avoid some notice sloppiness)
2009-11-16+x deleteuser.phpEric Helgeson