2 Replies Latest reply on May 13, 2013 6:44 AM by Thomas Michael

    Continuous Bluetooth Read Causing JNI ERROR (app bug): local reference table overflow / SIGSEGV / 11

      We have a device that continuously sends data via bluetooth to a rhodes app running on an android device.

       

      @@bluetoothIn

       

      def bluetooth_session_callback

       

        if @params['event_type'] == Rho::BluetoothSession::SESSION_INPUT_DATA_RECEIVED

          while Rho::BluetoothSession.get_status('deviceName') > 0

            str = Rho::BluetoothSession.read_string('deviceName')

       

            if str

              @@bluetoothIn += str

            end

          end

        end

       

        @@bluetoothIn = ''

       

      end

       

      After about 15 seconds of that code running, the app crashes and we get the following from the console log:

       

      E/dalvikvm(15717): JNI ERROR (app bug): local reference table overflow (max=512)

      W
      /dalvikvm(15717): JNI local reference table (0x5fc711b8) dump:

      W
      /dalvikvm(15717):   Last 10 entries (of 512):

      W
      /dalvikvm(15717):       511: 0x423db6b0 java.lang.String "RhoBluetoothMana... (22 chars)

      W/dalvikvm(15717):       510: 0x420b56e8 java.lang.Class<com.rhomobile.rhodes.Logger>

      W/dalvikvm(15717):       509: 0x420fd750 java.lang.String "
      Reply,next_chann... (36 chars)

      W
      /dalvikvm(15717):       508: 0x42100e80 java.lang.String "Inventory"

      W
      /dalvikvm(15717):       507: 0x423d9ac8 java.lang.String "toryReply,next_c... (39 chars)

      W/dalvikvm(15717):       506: 0x423dfef0 java.lang.String "
      Inven"

      W/dalvikvm(15717):       505: 0x4241b2f0 java.lang.String "
      entoryReply,next... (42 chars)

      W
      /dalvikvm(15717):       504: 0x423b4250 java.lang.String "Inv"

      W
      /dalvikvm(15717):       503: 0x423d9c38 java.lang.String "toryReply,next_c... (40 chars)

      W/dalvikvm(15717):       502: 0x421004a0 java.lang.String "
      Inven"

      F/libc    (15717): Fatal signal 11 (SIGSEGV) at 0x00000001 (code=1), thread 15784 (testpathfinder)

      I/DEBUG   ( 1979): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

      I/DEBUG   ( 1979): Build fingerprint: 'samsung/t0ltespr/t0ltespr:4.1.2/JZO54K/L900VPAMC2:user/release-keys'

      I/DEBUG   ( 1979): pid: 15717, tid: 15784, name: testpathfinder  >>> com.franwell.testpathfinder <<<

      I/DEBUG   ( 1979): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000001

      I/DEBUG   ( 1979):     r0 5fec1100  r1 5fec10f8  r2 5895895e  r3 dead1234

      I/DEBUG   ( 1979):     r4 420fd860  r5 00000001  r6 00000000  r7 5fec1100

      I/DEBUG   ( 1979):     r8 5fec18ec  r9 00000001  sl 5fec18f4  fp 40873bb9

      I/DEBUG   ( 1979):     ip ffffff00  sp 5ec1fe08  lr 4011c90d  pc 40873bdc  cpsr 00000030

      I/DEBUG   ( 1979):     d0  392377ce00a61d00  d1  bda8fae9be8838d4

      I/DEBUG   ( 1979):     d2  3efa01a019cb1590  d3  bf56c16c16c15177

      I/DEBUG   ( 1979):     d4  0000000000000000  d5  3f00000000000000

      I/DEBUG   ( 1979):     d6  000000003f3f4bf5  d7  00a61d003f000000

      I/DEBUG   ( 1979):     d8  0000000000000000  d9  0000000000000000

      I/DEBUG   ( 1979):     d10 0000000000000000  d11 0000000000000000

      I/DEBUG   ( 1979):     d12 0000000000000000  d13 0000000000000000

      I/DEBUG   ( 1979):     d14 0000000000000000  d15 0000000000000000

      I/DEBUG   ( 1979):     d16 4164c3a010000000  d17 3fe0000000000000

      I/DEBUG   ( 1979):     d18 0000000000000000  d19 38e9f5135cb87c55

      I/DEBUG   ( 1979):     d20 0000000000000000  d21 393377ce858a5d48

      I/DEBUG   ( 1979):     d22 3fa555555555554c  d23 bc91a62633145c07

      I/DEBUG   ( 1979):     d24 0000000000000000  d25 8000000000000000

      I/DEBUG   ( 1979):     d26 3fe7fffff4000005  d27 0000000000000000

      I/DEBUG   ( 1979):     d28 0000000000000005  d29 0000000000000000

      I/DEBUG   ( 1979):     d30 0000000000000000  d31 0000000000000000

      I/DEBUG   ( 1979):     scr 60000012

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): backtrace:

      I/DEBUG   ( 1979):     #00  pc 00050bdc  /system/lib/libdvm.so

      I/DEBUG   ( 1979):     #01  pc 0001f90b  /system/lib/libc.so (qsort+332)

      I/DEBUG   ( 1979):     #02  pc 0005104d  /system/lib/libdvm.so (dvmDumpReferenceTableContents(Object* const*, unsigned int, char const*)+576)

      I/DEBUG   ( 1979):     #03  pc 0002920c  /system/lib/libdvm.so (IndirectRefTable::dump(char const*) const+80)

      I/DEBUG   ( 1979):     #04  pc 00048a8d  /system/lib/libdvm.so

      I/DEBUG   ( 1979):     #05  pc 0004cfe9  /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+112)

      I/DEBUG   ( 1979):     #06  pc 000272e0  /system/lib/libdvm.so

      I/DEBUG   ( 1979):     #07  pc 0002bbe8  /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)

      I/DEBUG   ( 1979):     #08  pc 0005f871  /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)

      I/DEBUG   ( 1979):     #09  pc 00049973  /system/lib/libdvm.so

      I/DEBUG   ( 1979):     #10  pc 000447fc  /data/data/com.franwell.testpathfinder/lib/librhodes.so

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): stack:

      I/DEBUG   ( 1979):          5ec1fdc8  421004a0  /dev/ashmem/dalvik-heap (deleted)

      I/DEBUG   ( 1979):          5ec1fdcc  40871fef  /system/lib/libdvm.so (dvmHumanReadableType(Object const*)+210)

      I/DEBUG   ( 1979):          5ec1fdd0  5d9abaa8 

      I/DEBUG   ( 1979):          5ec1fdd4  57526820 

      I/DEBUG   ( 1979):          5ec1fdd8  6e616c2e 

      I/DEBUG   ( 1979):          5ec1fddc  6c432e67 

      I/DEBUG   ( 1979):          5ec1fde0  c0000000 

      I/DEBUG   ( 1979):          5ec1fde4  00000006 

      I/DEBUG   ( 1979):          5ec1fde8  00000000 

      I/DEBUG   ( 1979):          5ec1fdec  421004d0  /dev/ashmem/dalvik-heap (deleted)

      I/DEBUG   ( 1979):          5ec1fdf0  5fec13f8 

      I/DEBUG   ( 1979):          5ec1fdf4  5fec10f8 

      I/DEBUG   ( 1979):          5ec1fdf8  5fec16f4 

      I/DEBUG   ( 1979):          5ec1fdfc  4011c7b3  /system/lib/libc.so

      I/DEBUG   ( 1979):          5ec1fe00  df0027ad 

      I/DEBUG   ( 1979):          5ec1fe04  00000000 

      I/DEBUG   ( 1979):     #00  5ec1fe08  00000004 

      I/DEBUG   ( 1979):          5ec1fe0c  5fec10f8 

      I/DEBUG   ( 1979):          5ec1fe10  00000000 

      I/DEBUG   ( 1979):          5ec1fe14  4011c90d  /system/lib/libc.so (qsort+334)

      I/DEBUG   ( 1979):     #01  5ec1fe18  ffffff00 

      I/DEBUG   ( 1979):          5ec1fe1c  5fec10fc 

      I/DEBUG   ( 1979):          5ec1fe20  5fec10fc 

      I/DEBUG   ( 1979):          5ec1fe24  00000200 

      I/DEBUG   ( 1979):          5ec1fe28  5fec10f8 

      I/DEBUG   ( 1979):          5ec1fe2c  00000200 

      I/DEBUG   ( 1979):          5ec1fe30  5fec10f8 

      I/DEBUG   ( 1979):          5ec1fe34  000001f5 

      I/DEBUG   ( 1979):          5ec1fe38  408b3dd9  /system/lib/libdvm.so

      I/DEBUG   ( 1979):          5ec1fe3c  408b3ddc  /system/lib/libdvm.so

      I/DEBUG   ( 1979):          5ec1fe40  00000005 

      I/DEBUG   ( 1979):          5ec1fe44  00000200 

      I/DEBUG   ( 1979):          5ec1fe48  00000000 

      I/DEBUG   ( 1979):          5ec1fe4c  40874051  /system/lib/libdvm.so (dvmDumpReferenceTableContents(Object* const*, unsigned int, char const*)+580)

      I/DEBUG   ( 1979):     #02  5ec1fe50  421004a0  /dev/ashmem/dalvik-heap (deleted)

      I/DEBUG   ( 1979):          5ec1fe54  57529a58 

      I/DEBUG   ( 1979):          5ec1fe58  5ec1fea4 

      I/DEBUG   ( 1979):          5ec1fe5c  00000001 

      I/DEBUG   ( 1979):          5ec1fe60  5fd58ad8 

      I/DEBUG   ( 1979):          5ec1fe64  5fd58ae7 

      I/DEBUG   ( 1979):          5ec1fe68  00000800 

      I/DEBUG   ( 1979):          5ec1fe6c  5fc711b8 

      I/DEBUG   ( 1979):          5ec1fe70  5fc71990 

      I/DEBUG   ( 1979):          5ec1fe74  5fd22ea8 

      I/DEBUG   ( 1979):          5ec1fe78  000001f6 

      I/DEBUG   ( 1979):          5ec1fe7c  4014da6c 

      I/DEBUG   ( 1979):          5ec1fe80  408b3ddb  /system/lib/libdvm.so

      I/DEBUG   ( 1979):          5ec1fe84  408b3ddd  /system/lib/libdvm.so

      I/DEBUG   ( 1979):          5ec1fe88  00000020 

      I/DEBUG   ( 1979):          5ec1fe8c  57529a70 

      I/DEBUG   ( 1979):          ........  ........

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r0:

      I/DEBUG   ( 1979):     5fec10e0 ffffffff ffffffff 0000df04 00000000  ................

      I/DEBUG   ( 1979):     5fec10f0 00640069 0000080b 420fd860 420b56e8  i.d.....`..B.V.B

      I/DEBUG   ( 1979):     5fec1100 00000001 423b5300 421053a8 00000001  .....S;B.S.B....

      I/DEBUG   ( 1979):     5fec1110 420ce900 420d5eb0 420da9e0 420dd018  ...B.^.B...B...B

      I/DEBUG   ( 1979):     5fec1120 420ddf00 423c38c0 423c8f58 423cf0d8  ...B.8<BX.<B..<B

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r1:

      I/DEBUG   ( 1979):     5fec10d8 ffffffff ffffffff ffffffff ffffffff  ................

      I/DEBUG   ( 1979):     5fec10e8 0000df04 00000000 00640069 0000080b  ........i.d.....

      I/DEBUG   ( 1979):     5fec10f8 420fd860 420b56e8 00000001 423b5300  `..B.V.B.....S;B

      I/DEBUG   ( 1979):     5fec1108 421053a8 00000001 420ce900 420d5eb0  .S.B.......B.^.B

      I/DEBUG   ( 1979):     5fec1118 420da9e0 420dd018 420ddf00 423c38c0  ...B...B...B.8<B

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r2:

      I/DEBUG   ( 1979):     5895893c 6e697274 61432467 6e496573 736e6573  tring$CaseInsens

      I/DEBUG   ( 1979):     5895894c 76697469 6d6f4365 61726170 3b726f74  itiveComparator;

      I/DEBUG   ( 1979):     5895895c 6a4c1200 2f617661 676e616c 7274532f  ..Ljava/lang/Str

      I/DEBUG   ( 1979):     5895896c 3b676e69 6a4c1800 2f617661 676e616c  ing;..Ljava/lang

      I/DEBUG   ( 1979):     5895897c 7274532f 42676e69 65666675 19003b72  /StringBuffer;..

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r4:

      I/DEBUG   ( 1979):     420fd840 00000000 00000000 00000000 00000000  ................

      I/DEBUG   ( 1979):     420fd850 42105f98 423ae260 00000040 00000023  ._.B`.:B@...#...

      I/DEBUG   ( 1979):     420fd860 413e20b8 00000000 420fd880 00000000  . >A.......B....

      I/DEBUG   ( 1979):     420fd870 00000000 00000024 006c0070 00000063  ....$...p.l.c...

      I/DEBUG   ( 1979):     420fd880 413e2928 00000000 00000024 00000000  ()>A....$.......

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r7:

      I/DEBUG   ( 1979):     5fec10e0 ffffffff ffffffff 0000df04 00000000  ................

      I/DEBUG   ( 1979):     5fec10f0 00640069 0000080b 420fd860 420b56e8  i.d.....`..B.V.B

      I/DEBUG   ( 1979):     5fec1100 00000001 423b5300 421053a8 00000001  .....S;B.S.B....

      I/DEBUG   ( 1979):     5fec1110 420ce900 420d5eb0 420da9e0 420dd018  ...B.^.B...B...B

      I/DEBUG   ( 1979):     5fec1120 420ddf00 423c38c0 423c8f58 423cf0d8  ...B.8<BX.<B..<B

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near r8:

      I/DEBUG   ( 1979):     5fec18cc 423a4928 421004a0 423d9c38 423b4250  (I:B...B8.=BPB;B

      I/DEBUG   ( 1979):     5fec18dc 4241b2f0 423dfef0 423d9ac8 42100e80  ..AB..=B..=B...B

      I/DEBUG   ( 1979):     5fec18ec 420fd750 423a65b0 423db6b0 00000808  P..B.e:B..=B....

      I/DEBUG   ( 1979):     5fec18fc 000004cb 5fbe5a70 58abe4f8 00000100  ....pZ._...X....

      I/DEBUG   ( 1979):     5fec190c a00002c5 00000000 00000000 5daac7c0  ...............]

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near sl:

      I/DEBUG   ( 1979):     5fec18d4 423d9c38 423b4250 4241b2f0 423dfef0  8.=BPB;B..AB..=B

      I/DEBUG   ( 1979):     5fec18e4 423d9ac8 42100e80 420fd750 423a65b0  ..=B...BP..B.e:B

      I/DEBUG   ( 1979):     5fec18f4 423db6b0 00000808 000004cb 5fbe5a70  ..=B........pZ._

      I/DEBUG   ( 1979):     5fec1904 58abe4f8 00000100 a00002c5 00000000  ...X............

      I/DEBUG   ( 1979):     5fec1914 00000000 5daac7c0 00000000 5fbe5a70  .......]....pZ._

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near fp:

      I/DEBUG   ( 1979):     40873b98 b132681a 78116992 d004295b 20004770  .h2..i.x[)..pG.

      I/DEBUG   ( 1979):     40873ba8 46104770 68984770 bf004770 dead1234  pG.FpG.hpG..4...

      I/DEBUG   ( 1979):     40873bb8 6805b570 b91d680c bf181c20 bd702001  p..h.h.. .... p.

      I/DEBUG   ( 1979):     40873bc8 4b11b1e4 d103429d bf181b60 bd702001  ...K.B..`.... p.

      I/DEBUG   ( 1979):     40873bd8 d016429c 68236828 d0014298 bd701ac0  .B..(h#h.B....p.

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): memory near sp:

      I/DEBUG   ( 1979):     5ec1fde8 00000000 421004d0 5fec13f8 5fec10f8  .......B..._..._

      I/DEBUG   ( 1979):     5ec1fdf8 5fec16f4 4011c7b3 df0027ad 00000000  ..._...@.'......

      I/DEBUG   ( 1979):     5ec1fe08 00000004 5fec10f8 00000000 4011c90d  ......._.......@

      I/DEBUG   ( 1979):     5ec1fe18 ffffff00 5fec10fc 5fec10fc 00000200  ......._..._....

      I/DEBUG   ( 1979):     5ec1fe28 5fec10f8 00000200 5fec10f8 000001f5  ..._......._....

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): code around pc:

      I/DEBUG   ( 1979):     40873bbc b91d680c bf181c20 bd702001 4b11b1e4  .h.. .... p....K

      I/DEBUG   ( 1979):     40873bcc d103429d bf181b60 bd702001 d016429c  .B..`.... p..B..

      I/DEBUG   ( 1979):     40873bdc 68236828 d0014298 bd701ac0 f7ff4628  (h#h.B....p.(F..

      I/DEBUG   ( 1979):     40873bec 4606ffc9 f7ff4620 4286ffc5 ebc0bf14  ...F F.....B....

      I/DEBUG   ( 1979):     40873bfc ebc40006 bd700005 30fff04f f04fbd70  ......p.O..0p.O.

      I/DEBUG   ( 1979):

      I/DEBUG   ( 1979): code around lr:

      I/DEBUG   ( 1979):     4011c8ec 46224639 f7ff4633 9801ff2b 0901f04f  9F"
      F3F..+...O...

      I
      /DEBUG   ( 1979):     4011c8fc 93011903 4547193f 4638d824 47d84629  ....?.GE$.8F)F.G

      I
      /DEBUG   ( 1979):     4011c90c dc172800 d113e7e2 f8d8b946 f8da1000  .(......F.......

      I
      /DEBUG   ( 1979):     4011c91c f8c82000 f8ca2000 e0051000 46514640  . ... ......@FQF

      I
      /DEBUG   ( 1979):     4011c92c 46334622 ff0cf7ff 0a0aebc4 0901f04f  "F3F........O...

      I/DEBUG   ( 1979): !@dumpstate -k -t -z -d -o /data/log/dumpstate_app_native -m 15717

       

      Any help would be appreciated. Is there some way in rhodes to dispose of all the string objects being created manually that are causing the crash? (I think that's the cause).

       

      Thanks in advance!

       

      Edit: I've tried using GC.enable as well and still no luck