Nokia Insite OpenBSC Segfault

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Caleb Pal cleb at defcon-3.net
Tue Oct 29 02:51:52 UTC 2013


Hello,

I decided to connect my Nokia inSite 1900MHz E1 BTS that has been sitting
for a while. Shortly after I start OpenBSC, it crashes. I have attached my
configuration files as well as the result from gdb. I am using a Dahdi with
a TE122P set to E1 mode. 

openbsc.cfg 

!
! OpenBSC configuration saved from vty
!   !
password foo
!
line vty
 no login
!
e1_input
 e1_line 0 driver dahdi
network
 network country code 905
 mobile network code 1
 short name TNET
 long name TEST
 timer t3101 10
 timer t3113 60
 bts 0
  type nokia_site
  band GSM1900
  cell_identity 1
  location_area_code 1
  base_station_id_code 63
  training_sequence_code 7

  oml e1 line 0 timeslot 1 sub-slot full
  oml e1 tei 1

  trx 0
   arfcn 518
   max_power_red 24
   rsl e1 line 0 timeslot 2 sub-slot full
   rsl e1 tei 1
    timeslot 0
     phys_chan_config CCCH+SDCCH4
     e1 line 0 timeslot 6 sub-slot full
    timeslot 1
     phys_chan_config TCH/F
     e1 line 0 timeslot 6 sub-slot 1
    timeslot 2
     phys_chan_config TCH/F
     e1 line 0 timeslot 6 sub-slot 2
    timeslot 3
     phys_chan_config TCH/F
     e1 line 0 timeslot 6 sub-slot 3
    timeslot 4
     phys_chan_config TCH/F
     e1 line 0 timeslot 7 sub-slot 0
    timeslot 5
     phys_chan_config TCH/F
     e1 line 0 timeslot 7 sub-slot 1
    timeslot 6
     phys_chan_config TCH/F
     e1 line 0 timeslot 7 sub-slot 2
    timeslot 7
     phys_chan_config TCH/F
     e1 line 0 timeslot 7 sub-slot 3

DAHDI system.conf

# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Global data
#
# E1 Configuration (Jumper set on card)
#
#
span=1,0,0,ccs,hdb3,crc4
#
#
bchan=1-31
#
#
# Zone stuff
loadzone        = us
defaultzone     = us


Output from gdb:

root at openbsc-2:/opt/openbsc/openbsc/src# gdb ./osmo-nitb/osmo-nitb
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /opt/openbsc/openbsc/src/osmo-nitb/osmo-nitb...done.
(gdb) run
Starting program: /opt/openbsc/openbsc/src/osmo-nitb/osmo-nitb
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
<0018> input/lapd.c:212 LAPD Allocating SAP for SAPI=62 / TEI=1
<0018> input/lapd.c:223 k=1 N200=3 N201=260 T200=1.0 T203=10.0
<0018> input/lapd.c:485 LAPD DL-ESTABLISH request TEI=1 SAPI=62
DB: Database initialized.
DB: Database prepared.
<001d> sms_queue.c:220 Attempting to send 20 SMS
<0018> input/lapd.c:624 LAPD DL-ESTABLISH confirm TEI=1 SAPI=62
<0005> bts_nokia_site.c:58 bootstrapping OML for BTS 0
<0005> bts_nokia_site.c:1679 ABIS_OM_MDISC_FOM
<0005> bts_nokia_site.c:1507 (0x81) NOKIA_BTS_ACK
<0005> bts_nokia_site.c:1539 ACK = 1
<0018> input/lapd.c:513 LAPD DL-RELEASE request TEI=1 SAPI=62
<0018> input/lapd.c:628 LAPD DL-RELEASE confirm TEI=1 SAPI=62

Program received signal SIGSEGV, Segmentation fault.
0xb7f96f00 in lapd_send_i (line=line at entry=1609, lctx=<error reading
variable: Unhandled dwarf expression opcode 0xfa>,
    lctx=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
at lapd_core.c:1803
1803            if (!dl->tx_hist[h].msg) {
(gdb) bt full
#0  0xb7f96f00 in lapd_send_i (line=line at entry=1609, lctx=<error reading
variable: Unhandled dwarf expression opcode 0xfa>,
    lctx=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
at lapd_core.c:1803
        dl = 0x8157510
        k = 1 '\001'
        msg = <optimized out>
        length = <optimized out>
        left = <optimized out>
        rc = <optimized out>
        nctx = {dl = 0x8157510, n201 = -1208330011, cr = 219 '\333', sapi =
200 '\310', tei = 245 '\365', lpd = 183 '\267',
          format = 254 '\376', p_f = 255 '\377', n_send = 255 '\377', n_recv
= 255 '\377', s_u = 3 '\003',
          length = -1208330011, more = 62 '>'}
#1  0xb7f99ac3 in lapd_rx_i (lctx=0xbffff9b4, msg=0x815d708) at
lapd_core.c:1609
        dl = 0x8157510
        ns = 0 '\000'
        length = <optimized out>
        rc = <optimized out>
#2  lapd_ph_data_ind (msg=msg at entry=0x815d708, lctx=lctx at entry=0xbffff9b4)
at lapd_core.c:1644
        rc = <optimized out>
#3  0xb7f4aafa in lapd_receive (li=0x81333f8, msg=msg at entry=0x815d708,
error=error at entry=0xbffffa2c) at input/lapd.c:461
        i = 4
        lctx = {dl = 0x8157510, n201 = 260, cr = 0 '\000', sapi = 62 '>',
tei = 1 '\001', lpd = 0 '\000',
          format = 1 '\001', p_f = 0 '\000', n_send = 0 '\000', n_recv = 1
'\001', s_u = 0 '\000', length = 12,
          more = 0 '\000'}
        rc = 135476652
        sap = <optimized out>
        teip = 0x815d708
#4  0xb7f426e6 in e1inp_rx_ts_lapd (e1i_ts=e1i_ts at entry=0x8133ad4,
msg=msg at entry=0x815d708) at e1_input.c:556
        sapi = 62
        tei = 1
        ret = 0
        error = 0
#5  0xb7f460ee in handle_ts1_read (bfd=0x8134040) at input/dahdi.c:190
        line = <optimized out>
        msg = 0x815d708
        ret = 18
        ts_nr = <optimized out>
        e1i_ts = 0x8133ad4
#6  dahdi_fd_cb (bfd=0x8134040, what=1) at input/dahdi.c:376
        line = <optimized out>
        ts_nr = <optimized out>
        idx = <optimized out>
        e1i_ts = <optimized out>
        rc = 0
---Type <return> to continue, or q <return> to quit---
#7  0xb7f5a7e2 in osmo_select_main (polling=polling at entry=0) at select.c:158
        flags = <optimized out>
        ufd = 0x8134040
        tmp = 0x81345c8
        readset = {__fds_bits = {0 <repeats 32 times>}}
        writeset = {__fds_bits = {0 <repeats 32 times>}}
        exceptset = {__fds_bits = {0 <repeats 32 times>}}
        work = 1
        rc = <optimized out>
        no_time = {tv_sec = 0, tv_usec = 0}
#8  0x0804d481 in main (argc=1, argv=0xbffffd84) at bsc_hack.c:346
        rc = <optimized out>
(gdb) list
1798            }
1799
1800            h = do_mod(dl->v_send, dl->range_hist);
1801
1802            /* if we have no tx_hist yet, we create it */
1803            if (!dl->tx_hist[h].msg) {
1804                    /* Get next message into send-buffer, if any */
1805                    if (!dl->send_buffer) {
1806                            next_message:
1807                            dl->send_out = 0;
(gdb)



Regards,

Caleb

 





More information about the OpenBSC mailing list