Bug #53

Connection lost from NNTPGrab Server: Too long line received from server

Added by eustonr over 2 years ago. Updated over 2 years ago.

Status: Closed Start: 09/10/2010
Priority: Normal Due date:
Assigned to: Alguno % Done:

100%

Category: JSON-RPC plugin
Target version: 0.7.0
Votes: 0

Description

When the nntpgrab server as a lot of downloads in the queue (dont know how many exactly), you get the following error when connecting to the server using the gui :

glue.c:948 Connection lost from NNTPGrab Server: Too long line received from server. Disconnecting

The gui then locks up, and you have to kill the process. You cant connect to the server at all - although it does work (downloads are processed correctly)

This bug is in the last stable version, as well as the latest unstable version, and effects both Linux and OSX versions. (Windows untested).

Associated revisions

Revision 1730
Added by Alguno over 2 years ago

- Fixed a deadlock which occured in the GUI when the NNTPGrab Server disappears or when a protocol error occured. Refs #53
- When the connection to a NNTPGrab Server is lost, the program would disappear immediately. Changed this behaviour
by showing an error dialog and waiting for the user to close it before closing the entire program
- Re-added support to kill the NNTPGrab Server from a connected frontend
- From now on an error message will be returned when a JSON-RPC method is called which doesn't exist

Revision 1731
Added by Alguno over 2 years ago

- Added a new JSON-RPC function: schedular_foreach_task
This function is similar to the JSON-RPC function schedular_get_all_tasks but
the main difference is that the schedular_get_all_tasks function can return
a really long line on very large download queues. The new schedular_foreach_task
function is much more scalable as it returns all data using JSON-RPC events
instead of one giant object. Fixes #53
- Ported the Glue layer to use this new function (no further API changes involved)

History

#1 Updated by Alguno over 2 years ago

  • Category set to JSON-RPC plugin
  • Status changed from New to In Progress
  • Assigned to set to Alguno
  • Target version set to 0.7.0

Could you please try to debug this problem on Linux by using gdb.
Start the debugger with the command 'gdb nntpgrab_gui' and execute the following commands
break glue.c:664
run

Now try to reproduce the situation. If the situation is reproduced the program will hang (no error message will be shown anymore).
Now go back to the gdb terminal and execute the following commands:
print sock->recv_buf->len
print sock->recv_buf->str

Please attach the output of these commands to this bugreport

#2 Updated by eustonr over 2 years ago

    I've done as requested -

    (gdb) print sock->recv_buf->len
    $1 = 1048639
    (gdb) print sock->recv_buf->str
    $2 = (gchar *)
    0x7fffef072010 "{ \"id\": 10, \"error\": null, \"result\": [ { \"collection_name\": \"Mystery Science 3000\", \"poster\": \"\", \"total_size\": 4904042, \"total_size_remaining\": 4646548, \"files\": [ { \"subject\": \"Mystery Science Theat"...
    (gdb)

    #3 Updated by Alguno over 2 years ago

      Do you happen to have multiple servers configured and you're trying to download files which aren't available on the first (highest priority) server anymore?

      #4 Updated by eustonr over 2 years ago

        Nope.

        In this configuration, I had one active server, at high priority - supernews - and all the articles to be grabbed were under 400 days (supernews has a retention of 650 days)

        I did have Usenext configured as well, but it was disabled, and "normal" priority.

        #5 Updated by Alguno over 2 years ago

        • Status changed from In Progress to Closed
        • % Done changed from 0 to 100

        Applied in changeset r1731.

        Also available in: Atom PDF