[ejabberd] pubsub stopped working mysteriously, cannot rectify (503 error)

Toby Thain toby at telegraphics.com.au
Tue Dec 7 21:41:36 MSK 2010


Hi list,

A few months ago I wrote and tested an application that publishes to a
pubsub topic node.

It recently stopped working, and the nodes cannot be created. It was
thoroughly tested and working 100% a few months ago, it's not clear what
changed.

I've spent quite a few hours looking at this already; anyone have any
clues what could cause this?

--Toby


Debug: SendXML: sent(<iq type="set" from="order-bot at xx.fr"
to="pubsub.xx.fr" id='netjabber-3'>
			<pubsub xmlns="http://jabber.org/protocol/pubsub">
				<create node="/home/xx.fr/order-bot/orders" />
				<configure/>
			</pubsub>
		</iq>)
Debug: SendAndReceiveWithID: sent with id(netjabber-3)
Debug: WaitForID: id(netjabber-3)
Debug: ReceivedID: id(netjabber-3)
Debug: ReceivedID: nope...
Debug: WaitForID: haven't gotten it yet... let's wait for more packets
Debug: Process: timeout(1)
Debug: CallBack: sid(1093846773) received(<iq from='pubsub.xx.fr'
id='netjabber-3' to='order-bot at xx.fr/order-bot.pl-1291746866-3624'
type='error' xml:lang='en'>
			<pubsub xmlns='http://jabber.org/protocol/pubsub'>
				<create node='/home/xx.fr/order-bot/orders'/>
				<configure/>
			</pubsub>
		<error code='503' type='cancel'><service-unavailable
xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>)


My ejabberd.cfg looks like this:

%% Everybody can create pubsub nodes
{access, pubsub_createnode, [{allow, all}]}.
...
{modules,
 [
  {mod_adhoc,    []},
  {mod_announce, [{access, announce}]}, % recommends mod_adhoc
  {mod_caps,     []},
  {mod_configure,[]}, % requires mod_adhoc
  {mod_disco,    []},
  %%{mod_echo,   [{host, "echo.localhost"}]},
%  {mod_irc,      []},
  {mod_last,     []},
  {mod_muc,      [
		  %%{host, "conference. at HOST@"},
		  {access, muc},
		  {access_create, muc},
		  {access_persistent, muc},
		  {access_admin, muc_admin}
		 ]},
  %%{mod_muc_log,[]},
  {mod_offline,  []},
  {mod_privacy,  []},
  {mod_private,  []},
  %%{mod_proxy65,[]},
  {mod_pubsub,   [ % requires mod_caps
		  {access_createnode, pubsub_createnode},
		  {plugins, ["default", "hometree", "pep"]}
		 ]},
%  {mod_register, [...]},
  {mod_roster,   []},
  %%{mod_service_log,[]},
  {mod_shared_roster,[]},
  {mod_stats,    []},
  {mod_time,     []},
  {mod_vcard,    []},
  {mod_version,  []}
 ]}.


I dumped the pubsub_nodes table:

root at ele [/var/lib/ejabberd/spool]# erl -sname ejabberd at ele -mnesia dir
\"`pwd`\" -s mnesia
Erlang (BEAM) emulator version 5.6.5 [source] [64-bit] [async-threads:0]
[hipe] [kernel-poll:false]

Eshell V5.6.5  (abort with ^G)
(ejabberd at ele)1> dets: file "/var/lib/ejabberd/spool/offline_msg.DAT"
not properly closed, repairing ...

(ejabberd at ele)1> {ok, Fd} = file:open("/tmp/ejatemp.txt", [write]),
(ejabberd at ele)1>  [io:format(Fd, "~p~n", [E]) || E <-
ets:tab2list(pubsub_node)],
(ejabberd at ele)1>  file:close(Fd).
ok
(ejabberd at ele)2> q().
ok

root at ele [/var/lib/ejabberd/spool]# cat /tmp/ejatemp.txt
{pubsub_node,{"pubsub.xx.fr",
              ["home","xx.fr","order-bot-test","orders"]},
             {"pubsub.xx.fr",
              ["home","xx.fr","order-bot-test"]},
             "default",
             [{"order-bot-test","xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
{pubsub_node,{"pubsub.xx.fr",["home"]},
             {"pubsub.xx.fr",[]},
             "default",
             [{[],"pubsub.xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
{pubsub_node,{{"toby","xx.fr",[]},"urn:xmpp:avatar:metadata"},
             {{"toby","xx.fr",[]},[]},
             "pep",
             [{"toby","xx.fr",[]}],
             [{node_type,pep},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,false},
              {persist_items,false},
              {max_items,10},
              {subscribe,true},
              {access_model,presence},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,true}]}
{pubsub_node,{{"toby","xx.fr",[]},"urn:xmpp:avatar:data"},
             {{"toby","xx.fr",[]},[]},
             "pep",
             [{"toby","xx.fr",[]}],
             [{node_type,pep},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,false},
              {persist_items,false},
              {max_items,10},
              {subscribe,true},
              {access_model,presence},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,true}]}
{pubsub_node,{"pubsub.xx.fr",["home","xx.fr","order-bot"]},
             {"pubsub.xx.fr",["home","xx.fr"]},
             "default",
             [{"order-bot","xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
{pubsub_node,{"pubsub.xx.fr",["home","xx.fr"]},
             {"pubsub.xx.fr",["home"]},
             "default",
             [{[],"pubsub.xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
{pubsub_node,{"pubsub.xx.fr",
              ["home","xx.fr","order-bot","orders-antibes"]},
             {"pubsub.xx.fr",["home","xx.fr","order-bot"]},
             "default",
             [{"order-bot","xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
{pubsub_node,{{"toby","xx.fr",[]},"http://jabber.org/protocol/tune"},
             {{"toby","xx.fr",[]},[]},
             "pep",
             [{"toby","xx.fr",[]}],
             [{node_type,pep},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,false},
              {persist_items,false},
              {max_items,10},
              {subscribe,true},
              {access_model,presence},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,true}]}
{pubsub_node,{"pubsub.xx.fr",
              ["home","xx.fr","order-bot-test"]},
             {"pubsub.xx.fr",["home","xx.fr"]},
             "default",
             [{"order-bot-test","xx.fr",[]}],
             [{node_type,default},
              {deliver_payloads,true},
              {notify_config,false},
              {notify_delete,false},
              {notify_retract,true},
              {persist_items,true},
              {max_items,10},
              {subscribe,true},
              {access_model,open},
              {roster_groups_allowed,[]},
              {publish_model,publishers},
              {max_payload_size,60000},
              {send_last_published_item,on_sub_and_presence},
              {deliver_notifications,true},
              {presence_based_delivery,false}]}
root at ele [/var/lib/ejabberd/spool]#


More information about the ejabberd mailing list