Opened 11 years ago

Last modified 5 years ago

#9092 assigned bug

NoIP Update Client stops on error

Reported by: kp3ft Owned by: axeld
Priority: normal Milestone: R1
Component: Kits/Application Kit Version: R1/Development
Keywords: NoIP client Cc:
Blocked By: Blocking:
Platform: x86

Description (last modified by umccullough)

NoIP Update Client runs, but Haiku stops it on an error when attempting any change in NoIP's "settings" window. Using October 23, 2012 Haiku nightly image hrevr1alpha4-44646. NoIP download link: http://haikuware.com/directory/view-details/internet-network/miscellaneous/noip-update-client

Debug info below:

GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-pc-haiku"...(no debugging symbols found)

[tcsetpgrp failed in terminal_inferior: Invalid Argument]
Thread 4949 caused an exception: Segment violation
Reading symbols from /boot/system/runtime_loader...done.
Loaded symbols for /boot/system/runtime_loader
Reading symbols from /boot/system/lib/libbe.so...done.
Loaded symbols for /boot/system/lib/libbe.so
Reading symbols from /boot/system/lib/libroot.so...done.
Loaded symbols for /boot/system/lib/libroot.so
Reading symbols from /boot/system/lib/libnetwork.so...done.
Loaded symbols for /boot/system/lib/libnetwork.so
Reading symbols from /boot/system/lib/libbnetapi.so...done.
Loaded symbols for /boot/system/lib/libbnetapi.so
Reading symbols from /boot/system/lib/libstdc++.r4.so...done.
Loaded symbols for /boot/system/lib/libstdc++.r4.so
Reading symbols from /boot/system/lib/libicudata.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicudata.so.48.1.1
Reading symbols from /boot/system/lib/libicui18n.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicui18n.so.48.1.1
Reading symbols from /boot/system/lib/libicuio.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicuio.so.48.1.1
Reading symbols from /boot/system/lib/libicule.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicule.so.48.1.1
Reading symbols from /boot/system/lib/libiculx.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libiculx.so.48.1.1
Reading symbols from /boot/system/lib/libicutu.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicutu.so.48.1.1
Reading symbols from /boot/system/lib/libicuuc.so.48.1.1...done.
Loaded symbols for /boot/system/lib/libicuuc.so.48.1.1
Reading symbols from /boot/common/lib/libcrypto.so.1.0.0...done.
Loaded symbols for /boot/common/lib/libcrypto.so.1.0.0
Reading symbols from /boot/common/lib/libssl.so.1.0.0...done.
Loaded symbols for /boot/common/lib/libssl.so.1.0.0
Reading symbols from /boot/system/lib/libz.so.1...done.
Loaded symbols for /boot/system/lib/libz.so.1
Reading symbols from /boot/system/lib/libroot-addon-icu.so...done.
Loaded symbols for /boot/system/lib/libroot-addon-icu.so
[tcsetpgrp failed in terminal_inferior: Invalid Argument]
[Switching to team /boot/system/bin/NoIp Client (4938) thread w>No-IP Client Settings (4949)]
0x003074d7 in BMessage::_AddField () from /boot/system/lib/libbe.so
(gdb)

Attachments (1)

NoIp Client.zip (40.8 KB ) - added by waddlesplash 5 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 by kallisti5, 11 years ago

could you run a 'bt' at that gdb prompt? It may give a little additional context info.

in reply to:  1 comment:2 by kp3ft, 11 years ago

Replying to kallisti5:

could you run a 'bt' at that gdb prompt? It may give a little additional context info.

Hi, Thanks for the reply. Running bt at the prompt shows:

#0 0x003074d7 in BMessage::_AddField () from /boot/system/lib/libbe.so #1 0x0030777f in BMessage::AddData () from /boot/system/lib/libbe.so #2 0x0030975e in BMessage::AddInt64 () from /boot/system/lib/libbe.so #3 0x0033b756 in BControl::Invoke () from /boot/system/lib/libbe.so #4 0x0032dbfc in BButton::Invoke () from /boot/system/lib/libbe.so #5 0x0032dabf in BButton::MouseUp () from /boot/system/lib/libbe.so #6 0x003d87e5 in BWindow::DispatchMessage () from /boot/system/lib/libbe.so #7 0x003dd610 in BWindow::task_looper () from /boot/system/lib/libbe.so #8 0x00302cff in BLooper::_task0_ () from /boot/system/lib/libbe.so #9 0x005406e3 in thread_entry () from /boot/system/lib/libroot.so #10 0x78074fec in ?? () (gdb)

Version 0, edited 11 years ago by kp3ft (next)

comment:3 by umccullough, 11 years ago

Description: modified (diff)

comment:4 by axeld, 11 years ago

It looks just like memory corruption. It's unlikely that Haiku is the cause here, it's probably an application bug.

comment:5 by kallisti5, 11 years ago

Milestone: R1/alpha4R1/beta1
Priority: highnormal

pushing to beta1 as Axel confirms that Haiku is not likely the cause and the app is 3rd party binary without sources

comment:6 by pulkomandy, 9 years ago

Milestone: R1/beta1R1

by waddlesplash, 5 years ago

Attachment: NoIp Client.zip added

comment:7 by waddlesplash, 5 years ago

It's not a segmentation fault, and running under the guarded heap produces the exact same result. Instead, it's a divide error; specifically on this line.

If you add the following printf to the function just before the modulo:

printf("hash table size: %" B_PRId32 ", %" B_PRId32 "\n",
    fHeader->hash_table_size, fHeader->format);

you will always get the following output just before the crash:

hash table size: 0, -42

Printing other fields show they are often uninitialized memory, but hash_table_size is always 0 and format is always -42 no matter what.

comment:8 by waddlesplash, 5 years ago

Component: Network & InternetKits/Application Kit
Owner: changed from nobody to axeld
Status: newassigned
Note: See TracTickets for help on using tickets.