You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(10) |
Jun
(1) |
Jul
(3) |
Aug
(6) |
Sep
(8) |
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(12) |
Oct
(15) |
Nov
(37) |
Dec
(11) |
2002 |
Jan
(33) |
Feb
(14) |
Mar
(18) |
Apr
(38) |
May
(6) |
Jun
(20) |
Jul
(35) |
Aug
(155) |
Sep
(65) |
Oct
(112) |
Nov
(84) |
Dec
(68) |
2003 |
Jan
(86) |
Feb
(46) |
Mar
(39) |
Apr
(32) |
May
(52) |
Jun
(48) |
Jul
(8) |
Aug
(49) |
Sep
(16) |
Oct
(25) |
Nov
(19) |
Dec
(47) |
2004 |
Jan
(23) |
Feb
(31) |
Mar
(15) |
Apr
(13) |
May
(1) |
Jun
(9) |
Jul
(13) |
Aug
(6) |
Sep
(10) |
Oct
(7) |
Nov
(17) |
Dec
(35) |
2005 |
Jan
(31) |
Feb
(11) |
Mar
(15) |
Apr
(7) |
May
(38) |
Jun
(3) |
Jul
(5) |
Aug
(10) |
Sep
|
Oct
|
Nov
(17) |
Dec
(6) |
2006 |
Jan
(4) |
Feb
(32) |
Mar
(38) |
Apr
(6) |
May
(1) |
Jun
(7) |
Jul
(5) |
Aug
(19) |
Sep
(7) |
Oct
(23) |
Nov
(76) |
Dec
(50) |
2007 |
Jan
(33) |
Feb
(24) |
Mar
(1) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(11) |
Aug
(5) |
Sep
|
Oct
|
Nov
(12) |
Dec
(2) |
2008 |
Jan
(5) |
Feb
|
Mar
(3) |
Apr
|
May
(5) |
Jun
|
Jul
(9) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2009 |
Jan
|
Feb
(7) |
Mar
(7) |
Apr
(1) |
May
(3) |
Jun
|
Jul
|
Aug
(7) |
Sep
(6) |
Oct
(2) |
Nov
|
Dec
|
2010 |
Jan
|
Feb
(1) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(7) |
Aug
(4) |
Sep
|
Oct
(4) |
Nov
|
Dec
|
2011 |
Jan
(2) |
Feb
|
Mar
(4) |
Apr
(3) |
May
(14) |
Jun
(6) |
Jul
(7) |
Aug
(9) |
Sep
(4) |
Oct
|
Nov
(15) |
Dec
(20) |
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
(6) |
Oct
|
Nov
|
Dec
(1) |
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(4) |
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(2) |
Dec
(2) |
2016 |
Jan
(2) |
Feb
(3) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
(1) |
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2018 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Raphael M. <Rap...@po...> - 2024-03-03 14:47:21
|
Quoting david thompson via gtk-gnutella-users: : I am seeing a message on screen warning that my version of gtk-gnutella : is pretty old, when its not; my version is the same as on the : sourceforge page (1.2.2). Yes, but it is two-years old! :-) : I have tried reinstalling, have downloaded again the version on the : sourceforge page, deleting the hidden file in the home directory to no : avail. : : I am using slackware 14.2 64bit. : : Everything was fine until yesterday (scratches head). : Anyone have a clue that they could tell me? Yes, there is a time limit that triggered on Feb 25th. I am in the process of releasing 1.2.3 on sourceforge. The sources are there, and I am currently compiling the version for Windows. I have fixed some bugs that randomly triggered, but nothing major since 1.2.2. Sorry for the inconvenience. Cheers, Raphael |
From: david t. <dmt...@gm...> - 2024-03-01 13:49:19
|
Hello all, I am seeing a message on screen warning that my version of gtk-gnutella is pretty old, when its not; my version is the same as on the sourceforge page (1.2.2). I have tried reinstalling, have downloaded again the version on the sourceforge page, deleting the hidden file in the home directory to no avail. I am using slackware 14.2 64bit. Everything was fine until yesterday (scratches head). Anyone have a clue that they could tell me? Cheers |
From: Muhammad M. <muh...@fh...> - 2023-02-08 20:00:31
|
Hi All, Hope things are good at your end. I need some help setting up the software for only private setup. Iwant to use this software only for private setup without internet. I have devices connected to each other without internet and want to share files between each other. Is it possible that way or not? I am trying to find local IP address and search files but unable to connect. I will appreciate if I can get some help. If I try to manually connect to the local IP address, it says connection failed and then disappear. Regards, Malik |
From: Raphael M. <Rap...@po...> - 2022-02-25 17:24:11
|
Hello Gnutella fans, Version 1.2.2 contains major bug fixes and you should upgrade immediately if you are currently running GTKG. # v 1.2.2 2022-02-25 [stable] This is a maintenance release with major bug fixes. There were several shortcomings with bandwidth management: capping was not performed correctly and could overuse uploading bandwidth. Also when the DHT is turned off or on, we need to recompute proper bandwidth stealing. Corruption of the DHT disk databases could also lead to a crash. There was a critical old bug in the Dynamic Querying layer that affected Ultrapeers mostly: we could corrupt memory and/or crash when the current node was removed and we were processing a Dynamic Query for that node. This is more likely to happen when running as an Ultrapeer but it could also affect nodes running as leaves, although the probability of that bug happening is much less in that case. Finally, it is best to not iterate on a global list that could get changed due to a node removal. This was the case when sending pongs to neighbouring nodes, so we now take a private copy. Improvements: - Extended "props" shell command with -e (exact) and -i (ignore missing). - The "props" command now takes a set of properties, handled as one batch. Bug Fixes: - Properly recompute bandwidth stealing on DHT changes. - Avoid crashing in D-Bus lib when filename is improperly UTF-8 encoded. - DHT: protect against corrupted database. - bw_available(): fix invalid logic for I/O source capping. - pong_all_neighbours_but_one(): iterate on local list. - dq_node_removed(): must free dq object asynchronously. Under the Hood: - Update IRC network information: moved from freenode to libera.chat - Chunk size limiting for uploads accounts for bandwidth. - Reduce memory footprint for statx_t if no data kept. - CQ: defer freeing of dispatched event. - watchdog: be more verbose within critical messages. - node_parse(): signal to callers when we have BYE-ed the node. - cq_event_called(): use better diagnostic on assert failure. - dbus_util_send_message(): protect against invalid text. - prepare_entry(): ensure entry invariant remains true. - wd_expire(): do nothing if watchdog was asleep. Cheers, Raphael |
From: Raphael M. <Rap...@po...> - 2020-07-09 12:07:57
|
Hello Gnutella fans, I have just released version 1.2.0, which contains important fixes and really needs to be installed to replace 1.1.15. Here's the ChangeLog entry for the release: # v 1.2.0 2020-06-14 [stable] This is an evolution release, hence the minor version bump. Several cases of bad input (from network) causing assertion failures were fixed. In particular, bad DHT response after a security token lookup or invalid G2 input streams were fatal. There was also a critical bug, originating from a harmful code typo, which led gtk-gnutella to serve unvailable file chunks from partial files, as if they were available, resulting in unintended download corruption on the remote end! Thanks to Laurent Gil's efforts, it is now possible to run gtk-gnutella from a Docker container. See https://github.com/angegar/gtk-gnutella-docker. Running within docker raised some issues about sbrk() and thread_self(), which were fixed. The computation of the build date was fixed, to avoid corner cases where gtk-gnutella would complain it was "old" when freshely compiled from up-to-date sources in a git tree whose "master" branch was only infrequently updated. The file selector was fixed, to avoid displaying grayed-out folders, a setup wich did not allow one to actually select directories in the preferences. Many improvements were done to allow smoother uploading for servents with more bandwidth than the recipients. Instead of drastically limiting upload bandwidth (which was negatively impacting everyone), we are now monitoring and adjusting our uploading speed to avoid congestion on the remote end. When stalling happens, we also react quickly to reduce the available bandwidth of the connection, not that of all connections to whom we are uploading. We also no longer rely on MaxMind GeoIP for providing the IP -> country mappings. Their distribution mode now requires a specific licence which seems totally incompatible with the gtk-gnutella's distribution mode. Instead, we are now using IP2Location, and the GEO_LICENCE file now lists the conditions under which these data are re-distributed (gtk-gnutella transforms the data into a form that it can digest, so we are distributing a modified, derived work, not the original). If you are still using a version of gtk-gnutella earlier than the 1.1.x series, you are strongly encouraged to upgrade. Starting from this release, we are now considering these versions too old to connect to. Improvements: - Let --compile-info show which malloc() is used. - It is now possible to run gtk-gnutella from a Docker container. - Added details in the README file about required packages to compile. - Use gradual bandwidth penalty when uploads are stalling. - Added upload bandwidth capping. - Forcefully reduce request chunk if b/w is limited. - Emit a Retry-After header on 416 replies. - On HTTP 416, emit a Last-Modified header. - Switched to IP2Location for mapping IPs to countries, dropping MaxMind GeoIP. - Upload tab now shows our own partial completion ratio, not just "(partial)". - Detect abuse from HTTP clients not reading payloads. - Enforce Retry-After softly. - Ban them when they abuse of the browse-host feature. - Smarter detection of duplicate incoming Gnutella connections. Bug Fixes: - [GTK2] Fixed file selector to avoid greyed-out folders. - [GTK2] Guarantee updating of properties when refresh button is clicked. - Added emergency path during startup should sbrk() fail. - Fixed instructions following build.sh run. - Fixed possible thread_self() instability at startup. - Fixed backward portability issue with the BFD library. - Fixed computation of build date. - Fix 2 harmful typos, affecting serving of partial files. - Regenrate Configure to fix gccversion usage bug. - Restored compilation of a standalone local shell. - Remove executable permissions on C source file! - Rename our ARC4 interface on systems with native arc4random(). - Updated all files to fix obsolete FSF postal address. - Avoid banning hosts issuing legitimate upload requests. - Implement GNU extension malloc_usable_size() when using our malloc(). - UHC: when hardwired list is exhausted, reload it. - Make Content-Range and Content-Length prioritary headers. - ban_allow(): was never returning BAN_FORCE. - download_reply(): reload available ranges after 416 if needed. - download_stop_switch(): forgot to remove passive queue indication. - gtk_gnutella_exit(): must close UPnP layer before HTTP. - http_send_status(): reworked to avoid undue header truncation. - node_g2_read(): fixed faulty assertion. - pb_token_found(): be more robust against unexpected input. - search_gui_close_search(): avoid crash when emptying search list twice. - update_available_ranges(): revisited range processing logic. - upload_416_extra(): was generating non-compliant headers. - vmm_dump_pmap_log(): fixed deadlock. - download_moved_with_bad_sha1(): always reset fileinfo. - file_info_reset(): also discard previous TTH info. Under the Hood: - Added temporary "xk" country code for Kosovo. - Added vmm_type_pointer() to determine region type. - Add lingering period for unreferenced file_descriptor objects. - Add shell command "show files -d" to list currently used file_descriptor. - Raise minimum b/w scheduling slot to 256 bytes per second. - Fixed HashGenericCat() in Jmakefile, leading to wrong .c dependency. - Fast assertions are a must for GTKG nowadays, always compile with them. - Do not post multiple randomness generation messages. - Split bit_generic routines into .ht and .ct. - Reserve file_object_close() for user code. - Made it possible to compile with TRACK_MALLOC again. - Improved "thread elements" shell command to trace callback function names. - Avoid VMM magazine allocation when running with TRACK_MALLOC. - Enhanced TRACK_MALLOC to be able to trap xalloc() as well. - Enhanced TRACK_MALLOC debugging power with MALLOC_CATCH_MALLOC. - Extended bool_to_string() to display value if not 0 or 1. - TEQ: optimize I/O events by posting them directly to I/O queue. - VMM pmap logging shows allocated size per fragment type. - Removed gone / probably gone logic for discovered threads. - Ensure thread_atexit() callbacks run in discovered threads. - Ensure walloc0() redirects to underlying zeroing routines, for statistics. - Simplified shell I/O condition management and logging. - Separate Gnutella and HTTP (upload) banning categories. - STATIC_ASSERT: use a more compact version for less verbose errors. - Made thread exit value read-only in thread_atexit() callbacks. - Emit thread mask in crash logs upon detected deadlock. - ADNS: the cache is now thread-safe and cached replies shuffled. - ADNS: added expiring periodic callback for cached DNS entries. - Added new "adns_debug" property for ADNS debugging. - Avoid g_memmove() which has been deprecated. - Added ripening_contains() and ripening_update() routines, not used yet. - Optimize ripening table when no value is kept. - Use aging table to track download mesh sending times. - Use 429 instead of 550 for "Too Many Requests". - Remind less often about banning status. - Let emulated alloca() cleanup when thread exits. - Ensure alloca_stack_direction_compute() is never inlined. - Smarter detection of duplicate incoming Gnet connections. - xmalloc: must "embed" xstrdup() and xstrndup(). - xmalloc: simplified allocation entry points. - xmalloc: ensure stricter memory alignment when xmalloc() replaces malloc(). - ban_delay(): fixed to return remaining ban time. - ban_force(): read incoming data before shutdown(). - ban_vendor(): GTKG earlier than version 1.1 deemed too old. - bitcmp(): use memcmp() for byte comparison. - bool_to_string(): added carp trace to help spot the culprit. - cq_cancel(): fix logic to return TRUE if event was NULL. - crash_deadlocked(): no longer dump stacks. - crash_handler(): enter thread crash mode before signal cleanup. - crash_time_internal(): use thread_safe_small_id() in raw mode. - download_queue_delay_switch(): explicitly turn off queuing if switching. - download_queue_v(): explicitely reset passive queuing info. - download_reply(): Content-Length not necessary if Content-Range. - download_send_push_request(): trace server GUID. - erbtree_foreach(): added cheap safety assertion. - evq_trampoline(): cleanup event if cannot signal thread. - extract_retry_after(): ensure amount in seconds is the only value. - fi_pick_rarest_chunk(): be smarter about selected chunk. - fi_pick_rarest_chunk(): ensure first free chunk is available. - hcache_fill_caught_array(): fix array fill logic. - http_send_status(): ensure generated header has trailing CRLF. - local_shell_mainloop(): must flag "writable" on POLLHUP. - mingw_exception_log(): use static variables and be more careful. - natpmp_handle_discovery_reply(): trace inconsistent replies. - natpmp_handle_mapping_reply(): trace inconsistent replies. - parq_upload_send_queue(): tie PARQ upload queue and upload. - pcache_pong_received(): also validate changing ports. - rand31: avoid race condition during intial seeding. - random_pool_append(): ensure no endless recursion, ever! - send_pproxy_error_v(): remove dead code. - shell_handle_event(): always write() when having pending data. - shell_handle_event(): on exception, setup EOF/shutdown. - shell_write_data(): make sure to flush as much as possible. - sig_compute_pc_index(): be paranoid about optimization. - signal_name(): contort to avoid gcc-10 warning. - signal_trap_with(): avoid kernel signal desynchronisation. - signal_uncaught(): dump stack trace if harmful signal. - sorted_array_lookup(): sort array if they forgot to do it! - spinlock_deadlocked(): capture lock status early. - stacktrace_atom_lookup_and_store(): trace race conditions. - stacktrace_load_symbols(): do nothing if too early. - thread_create_full(): keep async exit callback separated. - thread_deadlock_check(): disable locks when deadlock is certain. - thread_deadlock_check(): only dump stacks of involved threads. - thread_stack_check_overflow(): also log used stack size. - upload_remove_v(): create better logging message. - vmm_malloc_inited(): now only called internally. - xmalloc_show_settings_log(): trace chosen memory alignment. - zgc_zalloc(): transformed some assertions into verbose ones. Enjoy! Raphael |
From: David R. <da...@da...> - 2019-12-27 19:34:58
|
Anyone have an idea what might be breaking here? I tried rebuilding the app. Rebuild is successful, but it still fails when running it, with the below output. Is GG still being actively maintained? Thanks, DR On 12/16/19 10:30 PM, David Rosenstrauch wrote: > v1.1.5 seems to be crashing for me on linux kernel 5.4.1. Some of the > errors I see logged to the console are attached below. Any ideas what > the issue might be? > > Thanks, > > DR > > > ... > 19-12-16 22:24:58.794 (DEBUG): loaded 330525 geographical IPv4 ranges > (2900521315 hosts) from "/usr/share/gtk-gnutella/geo-ip.txt" > 19-12-16 22:24:58.816 (DEBUG): loaded 95090 geographical IPv6 ranges > from "/usr/share/gtk-gnutella/geo-ipv6.txt" > 19-12-16 22:24:59.339 (CRITICAL): vmea_alloc(): cannot allocate > 6,227,198,758,839,676,928 bytes (used 0 bytes out of 8,388,608 reserved > with 0 allocations and 0 freeings) > 19-12-16 22:24:59.339 (CRITICAL): vmm_alloc_internal(): cannot allocate > 6,227,198,758,839,676,928 bytes: out of virtual memory > 19-12-16 22:24:59.339 (CRITICAL): crash_oom(): process is out of memory, > aborting... > 19-12-16 22:24:59.339 (WARNING): filelock_clean(): unlocking > /home/darose/.gtk-gnutella/gtk-gnutella.pid > 19-12-16 22:24:59.344 (WARNING): filelock_clean(): unlocking > /home/darose/gtk-gnutella-downloads/incomplete/.gtk-gnutella.lock > 19-12-16 22:24:59.345 (CRITICAL): trapped foreign exit(), cleaning up... > 19-12-16 22:24:59.345 (WARNING): disabled fancy symbolic stack traces > 0x7f83eea286a7 > 0x7f83eea2885e > do__exit > crash_deadlocked > vmm_alloc > xallocate+564 > xreallocate+143 > 0x7f83e7922310 > 0x7f83e7924343 > 0x7f83e7926c4c > 0x7f83e7927fd3 > 0x7f83e7928302 > 0x7f83eead2c95 > 0x7f83eead3951 > name_to_host_addr+189 > name_to_single_host_addr+58 > is_local_addr+1313 > inet_udp_got_incoming+44 > urpc_received+46 > socket_udp_event+1727 > inputevt_handle+259 > inputevt_timer+565 > dispatch_poll+12 > 0x7f83ef0bc26f > 0x7f83ef0be1b1 > 0x7f83ef0be1f1 > 0x7f83ef652032 > 0x7f83ef774de5 > main_gui_run+61 > main+2608 > ... > > > ... > 19-12-16 22:25:09.757 (DEBUG): loaded 330525 geographical IPv4 ranges > (2900521315 hosts) from "/usr/share/gtk-gnutella/geo-ip.txt" > 19-12-16 22:25:09.807 (DEBUG): loaded 95090 geographical IPv6 ranges > from "/usr/share/gtk-gnutella/geo-ipv6.txt" > 19-12-16 22:25:10.222 (WARNING): got SIGSEGV for VA=0x0 at > PC=0x7f7df189a2a8 (malloc_usable_size) from /usr/lib/libc.so.6 > 19-12-16 22:25:10.222 (DEBUG): crash_mode(): initial external call, > level=basic from thread "main" (#0) > 19-12-16 22:25:10.222 (DEBUG): crash_mode(): depth=0, external=y, > level=basic, old=none, new=basic > 19-12-16 22:25:10.222 (WARNING): signal_uncaught(SIGSEGV): running 2 > cleanup handlers > 19-12-16 22:25:10.222 (WARNING): filelock_clean(): unlocking > /home/darose/.gtk-gnutella/gtk-gnutella.pid > 19-12-16 22:25:10.226 (WARNING): filelock_clean(): unlocking > /home/darose/gtk-gnutella-downloads/incomplete/.gtk-gnutella.lock > 19-12-16 22:25:11.063 [23190] (MESSAGE): child #3 (PID 25022) killed by > SIGSEGV, core dumped after 7s > ... > > > _______________________________________________ > gtk-gnutella-users mailing list > gtk...@li... > https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-users |
From: David R. <da...@da...> - 2019-12-17 03:47:24
|
v1.1.5 seems to be crashing for me on linux kernel 5.4.1. Some of the errors I see logged to the console are attached below. Any ideas what the issue might be? Thanks, DR ... 19-12-16 22:24:58.794 (DEBUG): loaded 330525 geographical IPv4 ranges (2900521315 hosts) from "/usr/share/gtk-gnutella/geo-ip.txt" 19-12-16 22:24:58.816 (DEBUG): loaded 95090 geographical IPv6 ranges from "/usr/share/gtk-gnutella/geo-ipv6.txt" 19-12-16 22:24:59.339 (CRITICAL): vmea_alloc(): cannot allocate 6,227,198,758,839,676,928 bytes (used 0 bytes out of 8,388,608 reserved with 0 allocations and 0 freeings) 19-12-16 22:24:59.339 (CRITICAL): vmm_alloc_internal(): cannot allocate 6,227,198,758,839,676,928 bytes: out of virtual memory 19-12-16 22:24:59.339 (CRITICAL): crash_oom(): process is out of memory, aborting... 19-12-16 22:24:59.339 (WARNING): filelock_clean(): unlocking /home/darose/.gtk-gnutella/gtk-gnutella.pid 19-12-16 22:24:59.344 (WARNING): filelock_clean(): unlocking /home/darose/gtk-gnutella-downloads/incomplete/.gtk-gnutella.lock 19-12-16 22:24:59.345 (CRITICAL): trapped foreign exit(), cleaning up... 19-12-16 22:24:59.345 (WARNING): disabled fancy symbolic stack traces 0x7f83eea286a7 0x7f83eea2885e do__exit crash_deadlocked vmm_alloc xallocate+564 xreallocate+143 0x7f83e7922310 0x7f83e7924343 0x7f83e7926c4c 0x7f83e7927fd3 0x7f83e7928302 0x7f83eead2c95 0x7f83eead3951 name_to_host_addr+189 name_to_single_host_addr+58 is_local_addr+1313 inet_udp_got_incoming+44 urpc_received+46 socket_udp_event+1727 inputevt_handle+259 inputevt_timer+565 dispatch_poll+12 0x7f83ef0bc26f 0x7f83ef0be1b1 0x7f83ef0be1f1 0x7f83ef652032 0x7f83ef774de5 main_gui_run+61 main+2608 ... ... 19-12-16 22:25:09.757 (DEBUG): loaded 330525 geographical IPv4 ranges (2900521315 hosts) from "/usr/share/gtk-gnutella/geo-ip.txt" 19-12-16 22:25:09.807 (DEBUG): loaded 95090 geographical IPv6 ranges from "/usr/share/gtk-gnutella/geo-ipv6.txt" 19-12-16 22:25:10.222 (WARNING): got SIGSEGV for VA=0x0 at PC=0x7f7df189a2a8 (malloc_usable_size) from /usr/lib/libc.so.6 19-12-16 22:25:10.222 (DEBUG): crash_mode(): initial external call, level=basic from thread "main" (#0) 19-12-16 22:25:10.222 (DEBUG): crash_mode(): depth=0, external=y, level=basic, old=none, new=basic 19-12-16 22:25:10.222 (WARNING): signal_uncaught(SIGSEGV): running 2 cleanup handlers 19-12-16 22:25:10.222 (WARNING): filelock_clean(): unlocking /home/darose/.gtk-gnutella/gtk-gnutella.pid 19-12-16 22:25:10.226 (WARNING): filelock_clean(): unlocking /home/darose/gtk-gnutella-downloads/incomplete/.gtk-gnutella.lock 19-12-16 22:25:11.063 [23190] (MESSAGE): child #3 (PID 25022) killed by SIGSEGV, core dumped after 7s ... |
From: <shu...@21...> - 2019-08-27 04:43:17
|
<html> <head></head> <body> i established a vpn connection and i made a search, nothing prompted except no guess queries run yet <br /> </body> </html> |
From: David R. <da...@da...> - 2018-11-26 02:22:21
|
FYI, a patch was needed to build this on Arch Linux, as glibc now also includes a statx struct. (See http://darose.net/statx.patch) Best, DR On 10/30/18 6:24 PM, David Rosenstrauch wrote: > Hi. I'm trying to build the v1.1.14, but running into a compile issue: > > ... > /usr/bin/rm -f stats.o > cc -c -I../.. -I.. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include > -I/usr/lib/libffi-3.2.1/include -pthread -I/usr/include/dbus-1.0 > -I/usr/lib/dbus-1.0/include -DCURDIR=src/lib -O2 -g -pthread > -momit-leaf-frame-pointer -W -Wall -Wformat=2 -Wshadow -march=x86-64 > -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt > -D_FORTIFY_SOURCE=2 stats.c > stats.c:53:8: error: redefinition of ‘struct statx’ > struct statx { > ^~~~~ > In file included from /usr/include/sys/stat.h:446, > from ../common.h:108, > from stats.c:34: > /usr/include/bits/statx.h:36:8: note: originally defined here > struct statx > ^~~~~ > ... > > > Apparently other software packages have run into this issue as well, > with the cause being that a new version of glibc now includes statx. Any > idea how to solve this issue in the gtk-gnutella build? > > Thanks, > > DR |
From: David R. <da...@da...> - 2018-10-30 22:24:43
|
Hi. I'm trying to build the v1.1.14, but running into a compile issue: ... /usr/bin/rm -f stats.o cc -c -I../.. -I.. -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -pthread -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -DCURDIR=src/lib -O2 -g -pthread -momit-leaf-frame-pointer -W -Wall -Wformat=2 -Wshadow -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -D_FORTIFY_SOURCE=2 stats.c stats.c:53:8: error: redefinition of ‘struct statx’ struct statx { ^~~~~ In file included from /usr/include/sys/stat.h:446, from ../common.h:108, from stats.c:34: /usr/include/bits/statx.h:36:8: note: originally defined here struct statx ^~~~~ ... Apparently other software packages have run into this issue as well, with the cause being that a new version of glibc now includes statx. Any idea how to solve this issue in the gtk-gnutella build? Thanks, DR |
From: Raphael M. <Rap...@po...> - 2018-10-07 07:21:22
|
Hello, It appears the OS/X file I had downloaded from the object store (file which is built by the Travis Continuous Integration) was corrupted. Or so have I been told on #gtk-gnutella. I have re-downloaded the file, which was different. Its SHA1 is now: 9fe726be2a0f15bd092eda18778b47d5ab5d48a1 gtk-gnutella-1.1.14.dmg I immediately deleted the previous file on Sourceforge, re-signed this binary and uploaded it along with its signature to Sourceforge. If you are on OS/X, please re-download that file and I appreciate if you could drop me a note to acknowledge whether this file works now or is still corrupted. Not having any OS/X platform myself means I am blind. ACK by e-mail or on #gtk-gnutella (irc.freenode.net) will be fine. Sorry about the trouble! Raphael |
From: Raphael M. <Rap...@po...> - 2018-10-05 01:23:54
|
Dear Gnutella fans, I have just released version 1.1.14. Here are the changes: # v 1.1.14 2018-10-04 [stable] This release mostly improves the core routines and fixes a few important bugs. Due to a bug in the usage of the RX buffers, we were not correctly parsing data returned in "chunked" transfer-encoding by HTTP/1.1 servers. This affected the UPnP logic. The UPnP port unmapping done when the program shuts down was also not being able to complete successfully because we were preventing the HTTP connection from going on during the shutdown. Not critical because there is a lifetime attached to all mappings, but always best to properly clean-up when leaving. The algorithm used to pick random chunks to download was also revisited to ensure a uniform selection within the whole file ranges that remain to be fetched. At startup time, the DHT code no longer expires keys when reloading data. This could create crashes during the operation, with no other remedy than to erase all the DHT database files manually to be able to recover! The background task layer was also causing crashes (at exit time though) because it was not recording whether it was running "user" code as opposed to "kernel" code. The SDBM code was also improved to allow concurrency and, in particular, a "loose" iteration scheme which does not need to grab the database lock during the whole iteration process. It is also possible to perform a concurrent database rebuilding. The thread runtime now has an improved deadlock detection engine, based on a topological sort, that can definitely tell whether we are deadlocked. When the deadlock is detected, we can also have more information about the threads participating in that deadlock condition, to assist debugging. On Windows, a bug in our mingw_dlerror() emulation caused it to always fail once an error had been recorded, leading to un-decorated subsequent stack traces, which really do not help on that platform! There was also a concurrency bug in the processing of network queries. Every time the library was rescanned, it could trigger a crash due to a memory zone being declared private and was in fact shared between threads. The crash occurred only when a query was received on the Gnutella network whilst the library was rescanned. The semi-reliable UDP layer TX side was revisited to maximize chances that reliable messages get through completely. The pattern matching code was revisited thoroughly. A new algorithm (2-Way String Matching) now complements the Quick Search algorithm and an initial benchmarking is done to compare our own matching routines with native libc versions of strstr(), strlen(), strchr() and memchr(). The fastest routine is then selected, to ensure optimal performances. There is also a unit-test program ensuring proper semantics for the pattern search flags. New Features: - Added UDP scheduler message statistics by priority. Improvements: - [GTK2] Catch column resize events to persist widths quickly. - Added "shutdown -x" to stop the program and continue session next time. - Added --resume-session option to request explicit continuation. - Improved pattern matching with new algorithm and runtime benchmarking. - Persist current_peermode to restart in same mode after crash. - Record compilation date and time for the crashlog. - When running with no GUI, relax mem requirements to become ultra. - Use minimum download chunk size to align requested download offsets. - Added statistics for OOB hit notifications we process. - Extensive improvements of the SDBM code to allow concurrency. - Semi-reliable UDP TX layer now sends messages more aggressively. - Reduce memory footprint of compiled patterns for short patterns. Bug Fixes: - No longer supply -lgthread-2.0 and -lresolv at link time. - DHT: do not expire keys when reloading data at startup. - Restored alphabetical listing of command options in the man page. - The --use-poll argument was not mentioned in the manual page. - UPnP: fixed XML logging. - UPnP: was not correctly unmapping ports on servent shutdown. - crash_time_internal(): protect against recursions in raw mode. - file_info_retrieve(): must restore proper mtime for seeded files! - filter_apply(): fixed suffix matching to allow whole match. - http_data_ind(): could not process chunked data! - iov_contiguous_size(): fixed destructive implementation. - pslist_last_count(): fixed off-by-one error. - recursive_scan_step_build_partial_table(): removed assertion. - statx_opx(): use fabs() on double. - word_vec_init(): zone cannot be private. - zgc_subzone_defragment(): fixed improper assertion. Under the Hood: - Added hidden --no-build-version option. - Added cstr_{b,f,l}cpy() routines to supplant g_strlcpy() - Added strpcpy() which returns pointer to last copied trailing NUL. - Added vmm_move() to move allocated VM regions to better places. - Added G_FALL_THROUGH and fixed fall-through in switch cases. - Added assertions in embedded lists for insertions / removals. - Added new _mark_removed() and _link_mark_removed() for lists. - Added is_ascii_ident() to check "\w" (word) in ASCII. - Added ULONG_SWAP(). - Added op_roundup() and op_ptr_roundup() to round to upper aligned boundary. - Added stats datapoint iterators and ability to remove outliers. - Added G_FAST and G_NO_OPTIMIZE compilation directives. - Added support for case-insensitive pattern matching. - Added zone_info() to request zone allocation stats. - Added p[s]list_shift_data() to remove head when NULL is valid data. - Attempt relocation of hash tables arenas once in a while. - Always capture and display the routine name in assertions. - Disable parallel make execution in src/if. - Fixed indentation for "if" and "else" leading to gcc 7.x warnings. - Fixed logging fast assertion macros to allow just one string. - Declare property choices[] array static and const! - Optimize h_strnjoinv() with new strpcpy(). - Optimize memory for the gnet property init_list[]. - Optimized ctz64() to make it more obvious. - Protect events and subscribers with magic tags. - Removed http_buffer_t, completely obsoleted by pmsg_t. - Show zalloc settings at startup and in "memory show options". - Simplify code for read-lock upgrading and releasing. - Strings now hold persistent "truncated" flags, for formatting. - The watcher layer now auto-initializes. - Use the Mersenne Twister as an additional random source. - Use s_carp() instead of s_warning() for reporting "deep" important warnings. - Use new vstrstr(), vstrlen(), vmemchr() and vstrchr() for optimized runtime. - Windows: added ftruncate() emulation. - Windows: fixed stat() and fstat(), with proper st_dev and st_ino fields. - enamed hash_table_size() as hash_table_count() for consistency. - When log messages are truncated, signal it visually with trailing "+++". - VMM: use smarter core allocation under long-term strategy. - anti_window_shift_hack(): hide normal output if not debugging. - compat_longjmp(): record usage location and trace duplicate use. - crash_invoke_inspector(): do not hardwire parent stdout / stderr. - crash_restart(): always log the given message. - crash_setcctime(): avoid using "time" as parameter name. - crash_vmea_usage(): trace calling routine. - entropy_seed(): also initialize random "previous entropy". - fi_pick_chunk(): fixed selection of first chunk. - fi_pick_chunk(): revisited random chunk selection algorithm. - file_object_find(): loudly warn on file mismatch. - get_iconv_charset_alias(): do not copy trailing ' ' in charset name. - halloc_dump_stats_log(): was not logging realloc_via_xprealloc. - hrealloc(): use vmm_move() and attempt to optimize VM space. - log_handler(): emit stacktrace for glib, GTK or Pango warnings. - mingw_dladdr(): use win32 DLP layer to check for new libraries. - mingw_dlerror(): fixed to follow POSIX semantics. - mingw_fix_stat(): trap ERROR_NOT_READY errors correctly. - node_timer(): periodically try to move QRT arenas in VM space. - parse.h: remove NON_NULL_PARAM() on function with assertions. - rwlock_upgrade_from(): must only count read-locks from current thread. - s_logv(): default log message max length raised to 3500 bytes. - search_oob_pending_results(): randomly discard hits if too many. - search_request_preprocess(): warn if TCP query contains a "QK". - sequence_backward_iterator(): fixed case of one-way lists. - stacktrace_pretty_filepath(): move to latest /src/. - str_chr(): optimized to use vstrchr() if we can NUL-terminate. - str_destroy(): ensure we do not call on a thread-private string. - str_s2c(), str_2c(), str_dup(): handle already NUL-terminated strings. - str_s2c(): ensure we do not call on a thread-private string. - thread_suspend_others(): skip threads not marked as "valid". - timestamp: be paranoid and protect against invalid time_t inputs. - vmea_capacity(): changed semantics to report initial capacity. - vmm_mmap_anonymous(): identify foreign regions more quickly. - word_vec_make(): simplified code a bit. - wrealloc(): if size does not change, attempt a wmove(). - xallocate(): be more aggressive when forcing VMM allocation. - xmalloc: allocate via standalone VMM regions if possible. - xmalloc: revisited plain VMM block allocation and freeing. - xmalloc: use checksums to validate chunk headers. - xreallocate(): ensure VMM space improves when reallocating. - zcreate(): flag created zones as "user" ones. - zgc(): only run for long-lived processes. Enjoy! Raphael |
From: Victor B. C. <vic...@gm...> - 2018-04-16 14:07:33
|
I've tried to follow the README.Win32, but the first link to the GTK2.0 Bundle is dead so I installed GTK 2.24 with pre-build packages, when running ./build.sh the following error is displayed: Feature Summary (Version 1.1.13): ------------------------------------------------- GLib version : glib-2.x GUI front-end : GTK2 GnuTLS support : no NLS (Native Language Support) : yes Fast assertions : yes DBus support (experimental) : no Remote Shell Interface (deprecated): no ------------------------------------------------- ERROR: Cannot compile against GLib. Library or header files might be missing. ERROR: Cannot compile against Gtk+. Library or header files might be missing. As far as I'm aware of I've installed both GTK+ 2 and GLib. I was able to compile the source code in Ubuntu 14.04 following the Debian README. But I'm quite new to the MinGW environment so it is possible that it is something very basic taht fails. Any clue would be appreciated. <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> Virus-free. www.avast.com <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> |
From: <ze...@te...> - 2018-01-25 23:44:53
|
Its UI becomes unusable after running it for a few days on the Windows 7 SP1 OS. |
From: Raphael M. <Rap...@po...> - 2017-10-27 17:43:12
|
Dear Gnutella fans, Release 1.1.13 has just been pushed out to Sourceforge. You can safely move to 1.1.11 to 1.1.13. Release 1.1.12 was an accident. :-) Here is the Changelog entry for 1.1.13 and 1.1.12: # v 1.1.13 2017-10-22 [stable] This release primarily addresses issues that were left-over in 1.1.12. Do not use that previous release, migrate from 1.1.11 to 1.1.13 directly! The main issue was that of Partial File Sharing. Numerous bugs, dating from 7 years or more, were lurking because my local configuration had switched PFS off for testing, and it had never been turned back on! In particular, completed files were not properly shared, it was not possible to upload their THEX since it was not recomputed, and the files were not properly indexed in the Query Routing Table due to bugs in the background task layer. In case of a crash, we now dump the value of all the Gnutella properties to be able to spot configurations that deviate from the norm. Too many bugs were reported and ignored because they could not be reproduced, often due to not having the same setup when attempting to debug! Another nasty bug was fixed: it was not possible to change the IP support configuration without causing an immediate crash. The reason is due to a change that was integrated in 1.1.12 to allow IPv6 UDP traffic from G2 nodes. The problem was that this created an extra client stack on top of the low-level UDP traffic scheduler and it was not properly cleaned-up when switching IP configurations, leading to an assertion failure! New Features: Improvements: - Append all Gnutella properties to the crashlog file. - At startup, do not needlessly request TTH if we have it cached already. - Optimized requests for library scan / QRP rebuild, avoiding multiple events. - Allow TTH computation for seeded files. - Obsolete and stale entries are now removed from the SHA1 cache. - [GTK] Added GUI events on more fileinfo changes. - [GTK] Show information about recomputed TTH for seeded files. - Prune unshared entries from SHA1 cache at startup. - Persist information about seeded files in the ASCII fileinfo database. - Remove unneeded libraries from the default GTK2 ldflags. Bug Fixes: - Was not able to properly seed completed files; fixed shared_file_path(). - Was not always updating QRP on the UP side after a library change. - Could have background tasks stuck after cancelling a multi-ref'ed one. - Dynamic querying timeout was not properly computed (made too small). - Changing from "IPv6 & IPv4" to "IPv4 only" mode caused a crash. - Restored ability for "shutdown -r" to work. Under the Hood: - Added prop_to_typed_string(). - Added s_where() to log a stacktrace on stderr only. - Added tt_slice_size() to compute slice length per leaf in the TTH. - New crash_dumper_add() to register crash dumper callbacks. - No panicing when thread cannot block but was actually suspended. - Was unduly offsetting stacktrace by one extra level. - bg_sched_sleep(): don't reduce runcount on exiting task! - bg_sched_timer(): added run count consistency check. - bg_sched_timer(): fixed logging of task's run time. - bg_task_cancel(): log task address as well, not just the task name. - bg_task_wakeup(): must clear user sleeping flag. - crash_restart_notify(): use smarter crash_exit(). - crash_try_reexec(): suspend other threads as a precaution. - deflate_flushed(): suppressed soft assertion. - dq_results_expired(): fixed improper timeout computation. - fi_free(): cut any pending reference by uploads! - fi_tigertree_check(): more verbose in case of errors. - file_info_moved(): must update fi->modified as well. - file_info_remove_source(): removed unused discard parameter. - file_info_retrieve(): also validate that DONE is consistent. - file_info_shared_sha1(): do not share bad files. - get_file_to_upload_from_urn(): factorized code. - huge_update_hashes(): enforce one sync of SHA1 cache every minute. - huge_verify_callback(): use shared_file_indexed(). - node_udp_disable(): was not disabling the G2 UDP IPv6 node. - parse_and_append_cache_entry(): discard obsolete / stale entries. - qrt_compressed(): fixed outdated comments. - qrt_diff_1(): was never considering change. - request_sha1(): don't request TTH if we have it cached. - shared_file_fileinfo_unref(): clear fileinfo pointer. - shared_file_from_fileinfo(): copy TTH atom as well, if any. - shared_file_is_shareable(): be stricter for partial files. - shared_file_path(): must process sf->fi correctly! - upload_file_present(): loudly warn when completed file changed on disk. - upload_file_present(): loudly warn when file not shareable. - verify_update(): loudly warn when "progress" callback stops processing. # v 1.1.12 2017-09-20 [stable] This release fixes a very critical bug that was only manifesting when Partial File Sharing was turned on, and which caused possible memory corruption (leading to a sure crash later) when enqueuing new files for downloading. New Features: - Throttle browsing requests to one per hour from a given IP. - Limit uploads to stalling hosts to 1, regardless of user settings. - [GTK2] Show proper average data speed on completed uploads. Improvements: - Added "WSHR" vendor code for WireShare. - Added "ENVY" vendor code for Envy. - Do not attempt costly operations after a crash / auto-restart. - Updated FAQ -Uploads and Sharing- - Use 64-bit variables for bandwidth computations. - Make sure early stalling is not always reported for the same IP. - Use even HTTP outgoing bandwidth as the last measure when stalling. Bug Fixes: - Allow IPv6 UDP traffic from G2 nodes. - Be sure to use destructive list iteration with tmalloc_free_magazine(). - Critical upload HTTP statuses are now fully sent. - Must give plain (untranslated) strings to send_upload_error(). - bg_task_finished(): now calls safer bg_task_dead(). - file_object_open_from(): also catch EROFS when opening file. - node_bye_v(): do not call node_remove_v() for G2 nodes. - vendor_code_get_name(): fixed validation of unknown code tokens. - verify_next_file(): fixed wrong argument order in log message. Under the Hood: - bfd_util: reworked mutex grabbing in an attempt to avoid deadlocks. - binary_hash(): disperse bits in initial hash value. - check_for_events(): optimize path if timeout is 0 or we collect events. - cq_event_called(): only zero variable holding event when asked! - cq_zero(): now always nullify the event, as the name suggests. - crash_setmain(): avoid spurious warnings with recent gcc. - english_strerror() and symbolic_errno() made thread-safe. - inputevt_timer(): factorized common code into new inputevt_handle(). - socket_udp_flush_queue(): do not process anything if we cannot devote time. - stack_sym_trylock(): avoid deadly recursions through stack lock dumping! - thread_sig_handle(): use atomic exchange operation to clear pending set. - u32_ptr_hash(): discard lower bits of the multiplication as well. - upload_timer(): clear the stall flag when it is over. - Added aging_record() to simplify code for plain keys. - Added cq_event() to acknowledge reception of events we do not track. - Added "inputevt_trace" property for tracing dispatched I/O callbacks. - Added english_strerror() to guarantee English messages. - Added thread_signal_has_pending() and thread_signal_process(). - Added "lock_sleep_trace" and "lock_contention_trace" properties. - AJE: changed pool #0 filling policy and reseeding checks. - Ensure misc_init() is called before using lookup tables. - Simplify is_ascii_*() by performing table lookup. - Thread runtime now allows a signal handler to run within another one. - Updated UHC list, fixed obsolete port numbers. - Use new cq_event() in thread callout events to avoid possible leaks. - Watchdog: revisited logic to do more under lock protection. Enjoy! Raphael |
From: Vishnu V. K. <vis...@gm...> - 2017-06-12 09:45:39
|
Hi, I want to setup a Gnutella network between friends on my LAN. I did try setting the IP to my ip on the LAN, but I still can't manage to see anyone else on the network. Can someone help me out? What exactly do I have to do? Thanks! Vishnu -- OpenPGP fingerprint: 5015 1D4C 9BDF 9062 A9E1 62CB 5B1F4BEE7EED7131 |
From: Kristoff M. - M. S. <kri...@gm...> - 2016-12-18 22:32:52
|
I love that the program is agnostic to operating system and is evolving the gNutella protocol I think for accelerated adoption I would include an Android version to cater to the growing community of people who do not use a computer anymore. A mobile app would greatly increase the user base and being that it runs well on Linux creating an Android App would not be a far leap. I remember the days when I was running massive gNutella networks on a Pentium 800 so I am sure current cellphones could easily handle large gNutella networks created in the wild. Keep up the amazing work :) Ciao, Kristoff Morgan True Zen is just eating when you are hungry and sleeping when you are tired. - Alan Watts a Zen scholar |
From: David R. <da...@da...> - 2016-11-15 10:11:07
|
Sorry I wasn't able to get to this while it was still in the devel branch. But I was able to successfully build the new 1.1.11 release. Will try to run it when I have a moment. DR On 10/28/2016 03:35 AM, Raphael Manfredi wrote: > Quoting David Rosenstrauch <da...@da...> from ml.softs.gtk-gnutella.users: > :Hi. I'm the maintainer for the ArchLinux AUR package for gtk-gnutella. > :I'm trying to upgrade the package to v1.1.10, but getting a compile > :error. (See below.) > > David, I have pushed a fix on the "devel" branch on github. Maybe you can > grab that branch locally and try to build it on ArchLinux to make sure > it now works correctly? > > Thanks, > Raphael |
From: Raphael M. <Rap...@po...> - 2016-11-11 17:17:22
|
Dear Gnutella fans, Release 1.1.11 has just been pushed out to Sourceforge. Here is the Changelog entry: # v 1.1.11 2016-11-11 [stable] This release fixes a portability issue on FreeBSD and introduces a main core feature and minor new GUI features. The main feature is the additiona of "equivalence classes" defining word aliases, used when sharing files and querying for them. Currently, the only supported equivalence class deals with naming of series. Indeed, there are various conventions that can be used to represent these, and it makes searching inefficient: either one will lookup for all the possible variations, or one will miss some of the files. For instance, episode #8 of an hypothetical season #4 can be represented by any of these strings: { "s04e08", "4x08", "408", "04x08", "0408" } Thanks to the equivalence class, a file bearing one of these strings can be searched for (and located successfully) by using any of the other strings. Of course, since this is a local processing, the more servents out there are deployed with this aliasing support, the more efficient the feature becomes! There are also new GUI features: the "Clear completed" button from the Download pane is now doing someething useful, and the current page of different notebooks is remembered across sessions. The only one which is not restored on normal resuming is the main notebook tab. It will be restored if GTKG is restarted after a crash, but otherwise the application will always start up within the Network tab. In the Uploads tab, upload requests coming from a G2 servent will not be flagged with a "[G2]" tab right after the IP address. This helps seeing how the Gnutella and G2 network unification is evolving. New Features: - Flag uploads coming from G2 servents with a "[G2]" tag after IP address. - Added alias support in sharing/querying. - Made the "Clear completed" button in Downloads/Tools do something useful. - Moved "Clear completed" button to the bottom right of the download pane. - Remember fileinfo notebook tab number across sessions. - Remember main notebook tab number across sessions, only restored after crash. - Remember Gnet stats notebook tab number across sessions. - Remember download info / tools notebook tab number across sessions. Improvements: - Added --cleanup to explicitly request for final memory cleanup sequence. - Updated Italian translation. - Updated GeoIP databases. Bug Fixes: - Leaf nodes could end-up being connected to more ultrapeers than configured. - Fixed monitoring of alien threads, important when GTK file selector is used. Under the Hood: - Debian compatibility level changed from 4 to 5. - Make sure we can deal with older pkg-config, which needs leading arguments. - Use "embedded" symbols for xmalloc(), xfree() and friends. - Added "query_trace" property to trace all queries which were searched. - Moved halloc-based string functions like h_strdup() to dedicated hstrfn.c. - Expanded search mask to 64 bits to be able to hold all digits and letters. - Count aliased queries and hits from aliases. - Pre-compute shared file media type at record creation time. - Pass query limits to st_search() to avoid needless pattern matching. - Added h_strsplit() and h_strsplit_set(). - Added strvec_append_with() to expand vector by appending another vector. - crash_assert_logv(): don't call crash_mode() if assert failure was recorded. - entropy_clock_time(): mix the entropy nonce through hashing for more diffusion. - node_can_accept_connection(): only send headers back when handshaking. - qrp_add_file(): optimized to avoid computing word length if not required. - thread_stack_check_overflow(): ignore virtual addresses outside stack range. - vmm_init_once(): ensure any shared library for stacktrace unwinding is loaded. Enjoy! Raphael |
From: <Rap...@po...> - 2016-10-28 07:35:12
|
Quoting David Rosenstrauch <da...@da...> from ml.softs.gtk-gnutella.users: :Hi. I'm the maintainer for the ArchLinux AUR package for gtk-gnutella. :I'm trying to upgrade the package to v1.1.10, but getting a compile :error. (See below.) David, I have pushed a fix on the "devel" branch on github. Maybe you can grab that branch locally and try to build it on ArchLinux to make sure it now works correctly? Thanks, Raphael |
From: <Rap...@po...> - 2016-10-27 21:12:24
|
Quoting David Rosenstrauch <da...@da...> from ml.softs.gtk-gnutella.users: :Hi. I'm the maintainer for the ArchLinux AUR package for gtk-gnutella. :I'm trying to upgrade the package to v1.1.10, but getting a compile :error. (See below.) : :I'm trying to compile using this command: : :./build.sh --prefix=/usr : :The last clean build I got with this package was v1.1.5. But it's :certainly that something's gotten upgraded on the Arch side since then - :or that I'm missing a new dependency - that is causing the compile to :break. Got any suggestions what might be going wrong / how to fix? I :see the error message has to do with "malloc". Do I need to use the :--disable-malloc flag when building? I will try to hide "xmalloc", "xrealloc", "xcalloc" and "xfree" which are internal routines defined by gtk-gnutella to avoid conflicts with other libraries which may export these routines without using weak bindings. This has nothing to do with --disable-malloc: gtk-gnutella can also supersede "malloc", "realloc", "calloc" and "free" by defining this routines which are then used instead of their default libc counterparts. That build flag can prevent the redefinition. The funny part is that xmalloc() and friends have been around for a long time, and it is the first time I hear they are conflicting with another library... Won't be fixed before 1.2.0 unfortunately, unless I release 1.1.11 before switching to the 1.2.x versions. Raphael |
From: David R. <da...@da...> - 2016-09-18 16:01:49
|
Hi. I'm the maintainer for the ArchLinux AUR package for gtk-gnutella. I'm trying to upgrade the package to v1.1.10, but getting a compile error. (See below.) I'm trying to compile using this command: ./build.sh --prefix=/usr The last clean build I got with this package was v1.1.5. But it's certainly that something's gotten upgraded on the Arch side since then - or that I'm missing a new dependency - that is causing the compile to break. Got any suggestions what might be going wrong / how to fix? I see the error message has to do with "malloc". Do I need to use the --disable-malloc flag when building? Thanks, DR --- ... cc -o gtk-gnutella main.o if/bridge/ui2c.o if/bridge/c2ui.o if/gnet_property.o if/gui_property.o -Lshell -lshell -Lupnp -lupnp -Ldht -ldht -Lcore -lcore -Lcore/g2 -lg2 -Lui/gtk -lgtk-common -lgtkx -lgtk-common -Lxml -lxml -Llib -lshared -Lsdbm -lsdbm -lshared -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lgobject-2.0 -lgthread-2.0 -pthread -lglib-2.0 -ldbus-1 -lgnutls -O2 -g -pthread -Wl,-O1,--sort-common,--as-needed,-z,relro -lbfd -liberty -lz -lresolv -lm -ldl /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libiberty.a(xmalloc.o): In function `xmalloc': (.text+0xb0): multiple definition of `xmalloc' lib/libshared.a(xmalloc.o):/var/abs/local/gtk-gnutella/src/gtk-gnutella-1.1.10/src/lib/xmalloc.c:4772: first defined here /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libiberty.a(xmalloc.o): In function `xcalloc': (.text+0xe0): multiple definition of `xcalloc' lib/libshared.a(xmalloc.o):/var/abs/local/gtk-gnutella/src/gtk-gnutella-1.1.10/src/lib/xmalloc.c:8578: first defined here /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/../../../../lib/libiberty.a(xmalloc.o): In function `xrealloc': (.text+0x130): multiple definition of `xrealloc' lib/libshared.a(xmalloc.o):/var/abs/local/gtk-gnutella/src/gtk-gnutella-1.1.10/src/lib/xmalloc.c:5656: first defined here collect2: error: ld returned 1 exit status make[2]: *** [Makefile:257: gtk-gnutella] Error 1 make[2]: Leaving directory '/var/abs/local/gtk-gnutella/src/gtk-gnutella-1.1.10/src' make[1]: *** [Makefile:108: subdirs] Error 1 make[1]: Leaving directory '/var/abs/local/gtk-gnutella/src/gtk-gnutella-1.1.10' make: *** [Makefile:186: all] Error 2 ERROR: Compiling failed. ==> ERROR: A failure occurred in build(). Aborting... |
From: Raphael M. <Rap...@po...> - 2016-09-02 09:19:23
|
Dear Gnutella fans, Release 1.1.10 has just been pushed out to Sourceforge. Here is the Changelog entry: # v 1.1.10 2016-09-01 [stable] This is mostly a bug-fixing release and should be the last update on the 1.1.x release tree, before important core changes in the upcoming 1.2. Improvements: - FAQ cleanups. - Added the ".ape" file extension to the default list of shared files. - Remember hosts to which a TCP connection failed recently to avoid hammering. - Updated French and Turkish translations. - Updated GeoIP databases. Bug Fixes: - Don't embed build date if SOURCE_DATE_EPOCH is set for reproducibile builds. - Missed ":" in variable substitution request, in scripts/nm-list - nm-list: fixed date computation on BSD systems. Under the Hood: - Need TLS 2.12 to generate an X.509 self-signed certificate. - Added G_PRINTF() hint to tls_logfmt() and tls_cert_log() to avoid warnings. - Fixed CPP file inclusion protection symbol for lib/mime_type.h. - Added the "ape" MIME type linked to the ".ape" file extension. - Ensure we do not suspend threads during an interrupt. - Track where context was taken in our setjmp wrappers to ease debugging. - Keep track of "once" initializations in case we end-up recursing. - Trace which new lock is overflowing the lock stack. - once: make sure we can insert routine in our tracking table. - once: arbitrarily limit nesting level in one thread to 32. - dht_update_size_estimate(): return if our KUID was not initialized yet. - keys_reclaim(): we can have values attached to key if we can remove it. - symbols_load_from(): must release write lock when falling back to pre-computed. - thread_element_block_until(): was not checking for concurrent unblocking. - thread_element_block_until(): revisited signal handling. - thread_suspend_others(): don't wait for busy threads already marked suspended. - walloc: prevent race condition on walloc_stopped being set. Enjoy! Raphael |
From: Raphael M. <Rap...@po...> - 2016-03-30 21:44:33
|
Dear Gnutella fans, I have just released gtk-gnutella 1.1.4, with the following changes: # v 1.1.4 2015-09-09 [stable] This release is mostly a bug-fixing release. One major bug (leading to crash) was found in the G2 frame parsing layer: a carefully crafter G2 packet sent to GTKG could crash it, leading to a Denial of Service. For that reason, an upgrade to 1.1.4 is strongly recommended. The only major new feature is the added cleanups of the TTH cache and the crash log directory to make sure we do not keep useless files on the disk forever. Because the Phex servent is no longer maintained, there is now a workaround for that particular servent to ensure it can correctly download from GTKG. Improvements: - [GTK2] Added tri-state column sorting in "property editor" preference pane. - [GTK2] Show icon + warning message when we have no TCP listening socket. - Added an "install-strip" target to all Makefiles to install with stripping. - Can no longer edit properties flagged as "internal" through shell or GUI. - Added new "session_start_stamp" property to hold the true starting time. - Added support for TTH cache cleanup. - Added automatic cleanup of the crash log directory. - New shell command "random stats" to display the statistics on random layer. - Workaround for Phex: always send X-Gnutella-Content-URN in upload replies. - Updated GeoIP database. Bug Fixes: - upnp_natpmp_discovered(): detect when UPnP layer was shutdown and abort. - Fixed bad definition of XXTEA key, which led us to use only its first 4 bytes. - node_g2_read(): need to only read 3 bytes usually to determine frame length. - thread_sp(): tweaked to defeat gcc 5.x optimization leading to a NULL return. - File moving: notify main thread as soon as file is completely copied. - update_available_ranges(): lack of X-Available means file is full on server. Under the Hood: - Windows: added getppid() and statvfs() emulation, plus rmdir() support. - Improved the unpredictability of our random numbers. - Loudly warn if attempting a file-descriptor operation on a revoked descriptor. - Added compat_sendfile() with fallback to emulated version when necessary. - Added compat_statvfs() for portability and code simplification. - File moving operations now use sendfile() if available. - XFMT: made it loudly clear that comment nodes are ignored for now. - VMM: when debugging, trace large allocation spots. - VMM: raised maximum page cache lifetime from 3 to 15 minutes. - page_cache_find_pages(): treat user memory as if under short-term strategy. - filepath_basename(): optimize code when G_DIR_SEPARATOR is '/'. - Optimized CMP() to avoid branching regardless of the arguments. - Added ftw_foreach() to traverse a file system and process each entry. - mingw_readdir(): do not change errno if it was left untouched by _wreaddir(). - Let mingw_{opendir,readdir,closedir} use normal types, not generic ones. - mingw_stat(): added workaround for trailing "/" or "/." in paths. - etree_traverse_internal(): minor optimization to avoid trailing +1 each time. - Added etree_sort() and etree_sort_with_data() to sort children of all nodes. - Changed signature of decoding base16 and base32 routines. - Regenerated Configure to fix the fdopendir() compile test. - Make sure pointer hashing distributes its trailing bits evenly. - elist_merge_sort(): don't update tail, just do one single pass at the end. - vmm_dump_pmap_log(): copy pmap data, then process dumping without locks. Enjoy! Raphael |
From: Raphael M. <Rap...@po...> - 2016-03-06 11:37:53
|
Dear Gnutella fans, Release 1.1.9 has just been pushed out to Sourceforge. Here is the Changelog entry: # v 1.1.9 2016-03-06 [stable] This is mostly a bug-fixing release. It fixes an important bug in the UPnP discovery path that led to a crash when it found more than one UPnP device on the network. It also introduces a new Glossary that can be displayed to explain some terms that may be hard to understand for newcomers, so that they may in turn benefit from the tooltips and the information in the FAQ. On Windows, one important change is that we now force all memory allocations from the external DLLs to use our own malloc() implementation. This proves that one of the DLLs is exhibiting a memory leak. Plugging that leak will unfortunately require that a garbage collector be implemented. Measurements indicate that 4K leak every second on average, which eventually leads to an out-of-memory crash after a few days (2 to 3), preventing high uptimes on Windows. The leak is not originating from gtk-gnutella's code. Improvements: - [GTK2] Added menu to display the new glossary window. Bug Fixes: - Define PTHREAD_STACK_MIN to 0 in case it is not supplied by <pthread.h>. - can_become_ultra(): don't account for upload fds if no upload will take place. - compat_sleep_ms(): fixed the fallback implementation using compat_poll(). - dht_route_parse(): ensure we never use uninitialized variables. - entropy_collect_host(): no longer attempt to get the host IP addresses. - file_locate_from_path(): if pathname is qualified, duplicate argument! - ftw_foreach(): prevent memory leak on error path. - thread_lock_deadlock(): avoid de-referencing NULL if possible. - upnp_discovered(): avoid segfault when we have to pick the first device. Under the Hood: - Disable warnings about the mem vtable being deprecated in recent glib. - Suspend threads created after a global suspension is in effect. - Warn when we cannot find a thread to record / release a lock. - Added a new crash-level for deadlocks. - Added optional debugging code to track reading threads on a read-write lock. - Added spinlock_in_crash_mode_raw() for raw spinlocks to avoid deadly recursion. - Additional debugging code to track read spots per thread on a read-write lock. - Added backtrace capture when threads are contending for a lock. - On deadlocks, suspend the other threads and log origin quickly before handling. - New strategy in lock "deadlock" routines: ignore when in pass-through mode. - Do not perturb the lock waiting state of the crashing thread on a deadlock. - Revisited thread_lock_deadlock(). - Check for stack overflowing each time a lock is grabbed and recorded. - Added thread diversion support. - Added thread_halt() to forcefully halt concurrently crashing threads. - Refactored memory checks to avoid systematic locking in mem_is_valid_ptr(). - Try to divert crash processing to main thread when triggered in a sub-thread. - On deadlock condition, attempt to collect stacktraces of other threads. - Add the current process PID and the last crash level to the crash log. - Use raw logging routines in spinlock / mutex deadlock tracing. - Added crash_getpid() for safe original PID computation, even across a fork(). - Add dump of all the thread stacks to the crash log if we can't fork(). - Moved equiv() and implies() definitions to "casts.h". - Added xxx_to_string_grp() to optionally format xxx with thousand groupping. - Adding win32 dynamic library patcher to trap malloc() in all required DLLs. - Windows: with win32dlp, no need for monitoring committed memory. - Renaming of legacy G_GNUC_XXX into G_XXX for concision. - Renamed G_N_ELEMENTS as N_ITEMS. - Moved gcc-specific macros to a dedicated file. - Added pragmas to shut up spurious warnings with the clang 3.4.1 compiler. - On the lock recording path, we can now use thread_get_element() safely. - Made sure symbols are thread-safe and properly locked. - If stacktrace dumps could intertwine, prefix the second with the thread ID. - Allow for nested lock waiting sequences. - Added SIGSYS to the list of harmful signals we want to catch. - Added THREAD_F_WAIT to let thread_create() wait for the new thread to start. - Windows: was not reconstructing correct stack frame pointer for WINAPI calls. - Windows: improved backtracing through routines using a large amount of stack. - Made signal_enter_critical() and signal_leave_critical() thread-safe. - Made signal_in_handler() thread-safe. - No longer block signals when waiting for a read-write lock. - Prevent signals during logging, to avoid recursion if logging from handler. - rwlock: when waiting for too long, deadlock only when no activity is seen. - Added hash_table_is_locked(). - Added compat_gettid() and use it to record the system thread ID. - Added support for thread_interrupt() and thread_os_kill(). - Windows: make sure s_read() can return EINTR and handle it properly. - Windows: added support for sigprocmask(), sigsuspend() and friends. - xmalloc: count and loudly trace allocation attempts made from signal handler. - omalloc: loudly warn when invoked from signal handler. - VMM: warn when memory allocation / freeing attempted from signal handler. - VMM: use groupped formatting for region sizes or large numbers. - Make sure we do not dispatch thread signals when running in an interrupt. - Added s_minicarp_once() and a circular buffer to avoid memory allocation. - Monitor when we issue blocking syscalls to flag signal handlers as safe/unsafe. - Added plumbing to allow longjmp() or siglongjmp() in a signal handler. - booleanize(): use version not causing any jump, for speed. - clamp_strlen(): use same optimization as utf8_strlen() to compute length. - mingw_analyze_prologue(): fixed MOVL immediate offset parsing. - mingw_exception_log(): simplify processing on stack overflows. - mingw_getdtablesize(): don't call _getmaxstdio(), hardwire 2048 instead. - mingw_signal(): only call signal() for SIGSEGV. - mingw_sigraise(): only log sent signal when asked to. - mingw_waitpid(): fixed compilation warning given that WAIT_OBJECT_0 is 0. - mingw_win2posix(): added mapping for ERROR_INVALID_USER_BUFFER. - mingw_win2posix(): added mapping of ERROR_NO_SYSTEM_RESOURCES to ENOMEM. - mingw_write(): for Windows 7 and maybe later, do not call write(). - mutex_is_owned(): optimized by avoiding thread_self() call if mutex not locked. - prop_save_to_file(): use file's timestamp, not the current time. - rwlock_not_owned(): ignore errors when the rwlock layer is in pass-through. - s_logv(): made recursion detection thread-safe. - s_logv(): use raw time computation when running in signal handler. - s_minierror(): enhanced to enter crash mode immediately and show thread ID. - s_rawlogv(): force "raw" mode when running in a signal handler. - s_stacktrace(): downgrade from decorated to plain stack before skipping traces. - signal_name(): added more items to signals[], so cache linear lookup result. - spinlock_grab_try_from(): no crashing mode, don't say we locked if we couldn't. - stacktrace_get_symbols(): make sure we're running this only once. - stacktrace_unwind(): detect recursion in a thread-safe way. - stacktrace_unwind(): use gcc-style unwinding if recursing or within malloc. - str_vncatf(): added verbose assertion to ensure string is not overflowing. - symbols_name_only(): simplified code. - symbols_name_only(): simplify processing if we don't have to format an offset. - thread_check_suspended(): account for thread_find() returning NULL. - thread_cond_waiting_element(): don't create the cond stack until necessary. - thread_exiting(): do not reset the QID range on Windows for an exiting thread. - thread_id_name(): be robust if called during crashes. - thread_launch_trampoline(): do not harvest entropy, this slows down creation. - thread_lock_got_swap(): missed accounting of new lock in discovered thread. - thread_lock_waiting_element(): warn when we detect recursive lock waiting. - thread_preallocate_element(): also pre-allocate the lock stack. - thread_sig_handle(): don't handle signals if thread is supposed to be blocked. - thread_small_id(): bet on the QID lookup success. - thread_sp(): simpler version defeating compiler optimizations. - tm_localtime_raw(): use exact time, as this is used during logging. - xmalloc_thread_alloc(): refuse to allocate if within a signal handler. Enjoy! Raphael |