Ok, I've just reproduced Kyriacos' problem - it seems to be an issue
with MT HTTP POST with the TLV HTTP header set.
This is Kannel from the meta_data branch, with a couple of site-
specific patches (though they shouldn't have any effect - I get the
same results as Kyriacos does, and he's not using our patches)
Kannel bearerbox version `cvs-20080121'. Build `Jan 24 2008
20:04:12', compiler `3.4.6 20060404 (Red Hat 3.4.6-9)'. System Linux,
release 2.6.9-67.plus.c4smp, version #1 SMP Mon Nov 26 17:09:43 EST
2007, machine i686. Hostname kang.adl.mnetcorporation.com, IP
10.0.0.25. Libxml version 2.6.16. Using OpenSSL 0.9.7a Feb 19 2003.
Using native malloc.
I'm using Kyriacos' mblox TLV configuration (see his post on 27
November 2007)
Using the following POST (run with php from commandline)
<?php
$post="POST /cgi-bin/sendsms HTTP/1.1
Host: localhost:13189
X-Kannel-Username: xxx
X-Kannel-Password: xxx
X-Kannel-SMSC: mbloxdirectplus
X-Kannel-From: test
X-Kannel-To: xxx
X-Kannel-DLR-Mask: 31
X-Kannel-DLR-Url: http://127.0.0.1/dlr?smsc-id=%i&status=%d&answer=%
A&to=%P&from=%p&ts=%t&o=%o&I=%I
X-Kannel-Meta-Data: ?smpp?MBbilling=0&MBoperator=50503
Content-Type: text/plain
Content-Length: 74
let me know if you are still there now though cause i was hoping you
were.
";
$h=fsockopen('localhost','13189');
stream_set_timeout($h, 1);
fwrite($h,$post);
for($a=0,$r='';!$a;){
$b=fread($h,1024);
$r.=$b;
$a=(($b=='')?1:0);
}
fclose($h);
$c=$c+1;
?>
If the POST is made with X-Kannel-Meta-Data present, smsbox panics
like so:
...
2008-01-24 23:30:20 [6178] [3] INFO: smsbox: Got HTTP request </cgi-
bin/sendsms> from <127.0.0.1>
2008-01-24 23:30:20 [6178] [3] INFO: sendsms used by <xxx>
2008-01-24 23:30:20 [6178] [3] INFO: sendsms sender:<xxx:test>
(127.0.0.1) to:<xxx> msg:<let me know if you are still there now
though cause i was hoping you were.>
2008-01-24 23:30:20 [6178] [3] DEBUG: Stored UUID afd59b9f-5771-496d-
bc02-66151ef95e6d
2008-01-24 23:30:20 [6178] [3] DEBUG: message length 74, sending 1
messages
2008-01-24 23:30:20 [6178] [3] PANIC: gwlib/octstr.c:2491:
seems_valid_real: Assertion `ostr->data[ostr->len] == '\0'' failed.
(Called from gwlib/octstr.c:324:octstr_destroy.)
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox(gw_panic
+0x9e) [0x8080632]
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox
[0x8081314]
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox
(octstr_destroy+0x25) [0x80819d9]
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox
[0x80597e5]
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox
[0x805a14d]
2008-01-24 23:30:20 [6178] [3] PANIC: /opt/kannel/sbin/smsbox
[0x807805b]
2008-01-24 23:30:20 [6178] [3] PANIC: /lib/tls/libpthread.so.0
[0x9cf3cc]
2008-01-24 23:30:20 [6178] [3] PANIC: /lib/tls/libc.so.6(__clone
+0x5e) [0x7391ae]
If the POST is made with X-Kannel-Meta-Data removed, everything works
fine.
MTs sent via GET with meta-data parameter included work fine.
Amongst the many tests that Kyriacos and I have done, we saw some
different behaviour, including smsbox crashing with nothing output to
its log (it just disappears!), to different panics, like this one
that Kyriacos sent a little earlier:
6454403-2008-01-22 12:56:25 [11220] [3] INFO: sendsms sender:<test:
44777> (10.10.3.27) to:<xxx> msg:<SMART Plan Subscription: $9.99 per
month for 100 credits. Send Y to accept, STOP to end, for help txt
HELP or 1-888-218-4144 T&C + More at www.SmartLogos.tv>
6454663-2008-01-22 12:56:25 [11220] [3] DEBUG: Stored UUID ebb82188-
da6c-449a-9b42-11dc143d748a
6454751-2008-01-22 12:56:25 [11220] [3] DEBUG: message length 157,
sending 1 messages
6454829-2008-01-22 12:56:25 [11220] [3] ERROR: Start marker was
damaged for area 0xe5d2b08
6454912-2008-01-22 12:56:25 [11220] [3] ERROR: Could not find area
information.
6454984:2008-01-22 12:56:25 [11220] [3] PANIC: gwlib/octstr.c:2472:
seems_valid_real: Assertion `gw_check_is_allocated(ostr)' failed.
(Called from gwlib/octstr.c:324:octstr_destroy.)
6455159:2008-01-22 12:56:25 [11220] [3] PANIC: /usr/local/sbin/smsbox
(gw_panic+0xdc) [0x808ae9c]
6455248:2008-01-22 12:56:25 [11220] [3] PANIC: /usr/local/sbin/smsbox
[0x808b628]
6455322:2008-01-22 12:56:25 [11220] [3] PANIC: /usr/local/sbin/smsbox
(octstr_destroy+0x26) [0x808dc46]
6455417:2008-01-22 12:56:25 [11220] [3] PANIC: /usr/local/sbin/smsbox
[0x8059493]
6455491:2008-01-22 12:56:25 [11220] [3] PANIC: /usr/local/sbin/smsbox
[0x8080b6e]
6455565:2008-01-22 12:56:25 [11220] [3] PANIC: /lib/tls/i686/cmov/
libpthread.so.0 [0xb7ed8240]
6455652:2008-01-22 12:56:25 [11220] [3] PANIC: /lib/tls/i686/cmov/
libc.so.6(__clone+0x5e) [0xb7d533de]
Hope this is enough information to track down the bug! Unfortunately,
I'm still not up to scratch with tracing execution in GDB, so I can't
quite track down where those bad octstr_destroys are being called
from :(
Thanks,
On 23/01/2008, at 9:42 PM, Kyriacos Sakkas wrote:
Founf some PANIC lines is smsbox.log
Kyriacos Sakkas wrote:
My stability issues are in HTTP in both directions it would seem.
I get
no detailed error messages but it appears that smsbox dies after
either
forwarding more than 2-3 MOs to my app, or after it receives more
than
2-3 MTs from my app. It then gets regenerated, but seems unable to
talk
properly to bearerbox. Unfortunately the logs show nearly nothing
so I
do not have something more detailed to share.
Do you have another way of reading custom TLV values from DLR
messages?
The only thing I know that does it is the meta-data patches, and I
need
to have that functionality urgently, so for me there seems to be no
other option, than to get it to work.
Kyriacos
--
Giulio Harding
Systems Administrator
m.Net Corporation
Level 2, 8 Leigh Street
Adelaide SA 5000, Australia
Tel: +61 8 8210 2041
Fax: +61 8 8211 9620
Mobile: 0432 876 733
Yahoo: giulio.harding
MSN: [EMAIL PROTECTED]
http://www.mnetcorporation.com