praekeltfoundation / vumi

Messaging engine for the delivery of SMS, Star Menu and chat messages to diverse audiences in emerging markets and beyond.
BSD 3-Clause "New" or "Revised" License
422 stars 131 forks source link

global name 'pack_pdu' not defined #807

Closed ajsilver closed 10 years ago

ajsilver commented 10 years ago

I have just finished installing Vumi 0.5a manually and started supervisord. The transport starts ok but l find in the log an error relating to the VumiRedis client but in the pdu_builder.py file line 52 to be exact, stating that "global name 'pack_pdu' not defined". While everything else seems to be working, the redis client obviously isn't. Please could anyone help to resolve this issue.

jerith commented 10 years ago

Firstly, the redis client mentioned in the logs is a red herring -- somehow the logging system gets confused about where log messages are coming from.

Secondly, can you provide the stack trace you get and let us know what Python version you're using?

Thanks.

ajsilver commented 10 years ago

Python version is 2.7 on ubuntu 14, stack trace to follow shortly

ajsilver commented 10 years ago

2014-05-29 08:21:43+0100 [-] Disconnecting, no response from SMSC for longer than 110 seconds 2014-05-29 08:21:43+0100 [VumiRedis,client] << {'header': {'command_status': 'ESME_ROK', 'command_length': 0, 'sequence_number': 203, 'command_id': 'unbind'}} 2014-05-29 08:21:43+0100 [SmppTransceiverProtocol,client] Stopping factory <vumi.transports.smpp.smpp_transport.SmppTransceiverClientFactory instance at 0x7f3b8477d878> 2014-05-29 08:21:45+0100 [-] Starting factory <vumi.transports.smpp.smpp_transport.SmppTransceiverClientFactory instance at 0x7f3b8477d878> 2014-05-29 08:21:45+0100 [Uninitialized] Connection made, current state: OPEN 2014-05-29 08:21:45+0100 [VumiRedis,client] << {'body': {'mandatory_parameters': {'addr_npi': '', 'interface_version': '34', 'addr_ton': '', 'address_range': '', 'system_id': 'smppclient13', 'system_type': '', 'password': 'password13'}}, 'header': {'command_status': 'ESME_ROK', 'command_length': 0, 'sequence_number': 204, 'command_id': 'bind_transceiver'}} 2014-05-29 08:21:45+0100 [VumiRedis,client] Unhandled error in Deferred: 2014-05-29 08:21:45+0100 [VumiRedis,client] Unhandled Error Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 382, in callback self._startRunCallbacks(result) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 490, in _startRunCallbacks self._runCallbacks() File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 577, in _runCallbacks current.result = callback(current.result, _args, *_kw) File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1155, in gotResult _inlineCallbacks(r, g, deferred) --- --- File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks result = g.send(result) File "/home/portsmouth/vumi/vumi/transports/smpp/protocol.py", line 129, in bind self.send_pdu(pdu) File "/home/portsmouth/vumi/vumi/transports/smpp/protocol.py", line 205, in send_pdu return self.transport.write(pdu.get_bin()) File "/usr/local/lib/python2.7/dist-packages/smpp/pdu_builder.py", line 52, in get_bin return pack_pdu(self.obj) exceptions.NameError: global name 'pack_pdu' is not defined

ajsilver commented 10 years ago

I have reinstalled and the problem seem to have vanished. I think it is a bad install problem. For anyone else who find themselves with this problem, dump your environment and start a new install. Ensure that you install all of the following pre-requisites:- 'zope.interface', 'Twisted>=13.1.0', 'txAMQP>=0.6.2', 'PyYAML', 'iso8601', 'pyOpenSSL', 'service_identity', 'txssmi', 'wokkel', 'redis', 'txredis', 'python-smpp>=0.1.2', 'pytz==2013b', 'riakasaurus>=1.1.1', 'riak==1.5.2', 'txJSON-RPC==0.3.1', 'txTwitter>=0.1.4a', 'treq==0.2.1', build-essential python 2.6 python-dev 2.6 python-setuptools python-pip python-virtualenv postgresql-8.4 libpq-dev rabbitmq-server git-core openjdk-6-jre-headless libcurl4-openssl-dev redis-server

The follow these steps:-

==Install Steps== 1) Clone the git repository $ git clone https://github.com/praekelt/vumi.git 2) Create a virtualenv in /vumi $ virtualenv --no-site-packages ve 3) Activate the virtualenv $ . ve/bin/activate 4) $ sudo pip install -r config/requirements.pip 5) $ sudo utils/rabbitmq.setup.sh 6) $ utils/postgres.setup.sh (then enter password ‘vumi’ each time, if you choose another password the tests will failed) 7) $ utils/run-test.sh This is what worked for me. Enjoy :-)

smn commented 10 years ago

thanks :)