with the proposal:
and its core files upload feature I tried to provide a gdbserver interface for
the core files instead as the upload can be slow. FSF gdbserver cannot load
core files so created a simple new gdbserver for it:
* Currently threading is not supported.
* Currently only x86_64 is supported (the NOTE registers layout).
In my current setup of:
* link RTT (round trip time): 272ms
* uplink speed: 1Mbit
* core file from openoffice.org: 74M
* core file from openoffice.org xz -9e: 8.6M
1m35.685s: scp upload.
1m31.144s: gdbserver with gdb LINE_SIZE_POWER == 12 (0x1000).
3m55.867s: gdbserver with gdb default LINE_SIZE_POWER == 6 ( 0x40).
Just I guess usually people have lower RTT and lower uplink, don't they?
In such case the results would be much more in the favor of gdbserver.
Still in none of the cases it completes in 60 seconds after which you kill
current GDB. So you are going to be killing even the upload processes.
I can finish the two missing features if there is an interest in it.
David Tardon pointed out several duplicate bugs reported on
OpenOffice.org component. The problem is in the way how the top-level
duplicate hash is computed: package + executable + backtrace. ABRT is
supposed to merge all crashes with the same backtrace within one
component into single Bugzilla bug, because identical backtrace implies
that the problem is in shared code. So the duplicate hash should be
computed from component + backtrace.
Do you see any issues with the new way?
Note: I will be using a C++ notations for glib structures.
Before I send a patch about rewriting LoadPluginSettings to C, I have to write
one before. It will be smaller and it will rewrite function from abrt-cli
static void get_reporter_plugin_settings(const vector_string_t& reporters,
a new interface will be
static GHashTable *get_reporter_plugin_settings(const vector_string_t&
and returned value is GHashTable<char*, map_string_t>. In a second patch(the
one which will rewrite LoadPluginSettings) returned value will be
GHashTable<char *, GHashTable<char *, char*>. Returned value must be
I also have to introduce a new funcion in dbus.
--here I am right now--
After transmitting data structure to daemon, I'm almost done, because of
beauty of passing settings to daemon(writing them to stdin)
Now a little bit about LoadPluginSettings
Interface: extern GHashTable *load_plugin_settings(const char *pPath, bool
load_plugin_settings return NULL on error or initialized GHashTable
Data structure: GHashTable<char *, char*>
A new dbus functions must be: (load_/save_)hash_table_str(DBus*,
GHashTable<char *, char*>);
Simple taste of code:
GHashTable *single_plugin_settings = load_plugin_settings(path.c_str(),
src/cli/dbus.cpp | 6 +-
src/cli/dbus.h | 2 +-
src/cli/report.cpp | 11 ++-
src/daemon/CommLayerServerDBus.cpp | 4 +-
src/daemon/Makefile.am | 2 +
src/daemon/MiddleWare.cpp | 5 +-
src/daemon/MiddleWare.h | 2 +-
src/daemon/PluginManager.cpp | 11 ++--
src/daemon/PluginManager.h | 2 +
src/hooks/Makefile.am | 1 +
src/include/abrt_types.h | 2 -
src/include/abrtlib.h | 31 +++++-----
src/include/plugin.h | 6 +-
src/lib/Makefile.am | 2 +
src/lib/Plugin.cpp | 15 ++---
src/lib/abrt_dbus.c | 101
src/lib/abrt_dbus.h | 4 +
src/lib/load_plugin_settings.cpp | 11 ++--
src/plugins/CCpp.cpp | 56 +++++++++---------
src/plugins/CCpp.h | 2 +-
src/plugins/KerneloopsScanner.cpp | 6 +-
src/plugins/Makefile.am | 8 ++-
src/plugins/abrt-action-bugzilla.cpp | 16 ++---
src/plugins/abrt-action-kerneloops.cpp | 15 ++---
src/plugins/abrt-action-mailx.cpp | 25 ++++----
src/plugins/abrt-action-rhtsupport.cpp | 25 ++++----
src/plugins/abrt-action-upload.cpp | 13 ++--