Permalink
Commits on Aug 16, 2010
  1. Fix a typo

    Matthias Clasen
    Matthias Clasen committed Aug 16, 2010
  2. Add NEWS item for bug 627071

    David Zeuthen
    David Zeuthen committed Aug 16, 2010
    Signed-off-by: David Zeuthen <davidz@redhat.com>
  3. Bug 627071 – g_output_stream_write() clarification

    David Zeuthen
    David Zeuthen committed Aug 16, 2010
    This patch guarantees that g_output_stream_write() can never fail with
    G_IO_ERROR_WOULD_BLOCK. Without such a guarantee, we would need some
    kind of GIOPollable interface or some way to get an event when the
    stream is writable again. Which is mostly useless considering that
    this method is asynchronous anyway.
    
    Note: this patch just codifies existing behavior - GUnixOutputStream,
    GSocketOutputStream and other implementations already work this way.
    
    See also bug 626748 comment 5 for how the GDBus code relies on this
    guarantee.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=627071
    
    Signed-off-by: David Zeuthen <davidz@redhat.com>
  4. More NEWS

    Matthias Clasen
    Matthias Clasen committed Aug 16, 2010
  5. Fix a doc format issue

    Matthias Clasen
    Matthias Clasen committed Aug 16, 2010
  6. Update NEWS for 2.25.14

    Matthias Clasen
    Matthias Clasen committed Aug 16, 2010
  7. Bug 626748 – Use async methods for writing and handle EAGAIN

    David Zeuthen
    David Zeuthen committed Aug 16, 2010
    If sending a lot of data and/or the other peer is not reading it, then
    socket buffers can overflow. This is communicated from the kernel by
    returning EAGAIN. In GIO, it is modelled by g_output_stream_write()
    and g_socket_send_message() returning G_IO_ERROR_WOULD_BLOCK.
    
    It is also problematic that that we're using synchronous IO in the
    shared GDBus IO thread. It means that one GDBusConnection can lock up
    others.
    
    It turns out that by porting from g_output_stream_write() to
    g_output_stream_write_async() we fix the EAGAIN issue. For GSocket, we
    still need to handle things manually (by creating a GSource) as
    g_socket_send_message() is used.
    
    We check the new behavior in Michael's producer/consumer test case (at
    /gdbus/overflow in gdbus-peer.c) added in the last commit.
    
    Also add a test case that sends and receives a 20 MiB message.
    
    Also add a new `transport' G_DBUS_DEBUG option so it is easy to
    inspect partial writes:
    
     $ G_DBUS_DEBUG=transport ./gdbus-connection -p /gdbus/connection/large_message
     [...]
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 0 on a GSocketOutputStream
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 128000 on a GSocketOutputStream
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 128000 bytes of message with serial 4 and
            size 20971669 from offset 256000 on a GSocketOutputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       >>>> WROTE 43669 bytes of message with serial 4 and
            size 20971669 from offset 20928000 on a GSocketOutputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 16 bytes of message with serial 3 and
            size 20971620 to offset 0 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 15984 bytes of message with serial 3 and
            size 20971620 to offset 16 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 16000 bytes of message with serial 3 and
            size 20971620 to offset 16000 from a GSocketInputStream
     [...]
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 144000 bytes of message with serial 3 and
            size 20971620 to offset 20720000 from a GSocketInputStream
     ========================================================================
     GDBus-debug:Transport:
       <<<< READ 107620 bytes of message with serial 3 and
            size 20971620 to offset 20864000 from a GSocketInputStream
     OK
    
    https://bugzilla.gnome.org/show_bug.cgi?id=626748
    
    Signed-off-by: David Zeuthen <davidz@redhat.com>
  8. GSocket: Properly initialize msg.msg_control

    David Zeuthen
    David Zeuthen committed Aug 16, 2010
    This patch fixes this problem
    
       Syscall param socketcall.sendmsg(msg.msg_control) points to uninitialised byte(s)
          at 0x3D5B00EA60: __sendmsg_nocancel (syscall-template.S:82)
          by 0x53F9790: g_socket_send_message (gsocket.c:2918)
          by 0x540FDD0: g_unix_connection_send_credentials (gunixconnection.c:351)
          by 0x542B93F: _g_dbus_auth_run_client (gdbusauth.c:618)
          by 0x5438001: initable_init (gdbusconnection.c:2191)
          by 0x53E09CC: g_initable_init (ginitable.c:105)
          by 0x543F6E9: g_bus_get_sync (gdbusconnection.c:6091)
          by 0x402C7E: test_connection_life_cycle (gdbus-connection.c:126)
          by 0x4C7CABB: test_case_run (gtestutils.c:1174)
          by 0x4C7CD84: g_test_run_suite_internal (gtestutils.c:1223)
          by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
          by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
        Address 0x7fefff9fc is on thread 1's stack
    
    Signed-off-by: David Zeuthen <davidz@redhat.com>
  9. Declare stream base classes as abstract

    Matthias Clasen
    Matthias Clasen committed Aug 16, 2010
Commits on Aug 15, 2010
  1. Always do async vs sync correctly in GSocketConnection streams

    danwinship committed Jun 24, 2010
    Previously if a GSocketConnection had a blocking GSocket, it would
    sometimes block during asynchonous I/O, and if it had a non-blocking
    socket, it would sometimes return G_IO_ERROR_WOULD_BLOCK from
    synchronous I/O. This fixes the connection to not depend on the socket
    state.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=616458
Commits on Aug 14, 2010
  1. GSocketClient: plug two leaks

    danwinship committed Aug 14, 2010
    g_socket_client_connect_async() was always leaking its GCancellable,
    and would also leak any GSocket that eventually failed to connect
    after returning G_IO_ERROR_PENDING.
  2. GSocketClient: add a timeout property

    danwinship committed Aug 14, 2010
    GSocket has a timeout flag now, but when using GSocketClient there was
    no way to set the timeout until after connecting (or failing). Fix
    that by adding a timeout property to GSocketClient.
  3. Add examples for GAsyncInitiable and GSimpleAsyncResult

    wjt authored and Matthias Clasen committed Aug 14, 2010
    Bug 602417
  4. Document that _complete() et al. ref the GSimpleAsyncResult

    wjt authored and Matthias Clasen committed Aug 14, 2010
  5. _simple_async_result_is_valid: allow tag to be NULL

    wjt authored and Matthias Clasen committed Aug 14, 2010
    Because g_simple_async_report_[g]error_in_idle() don't take a source tag
    parameter, code that uses them can't currently use
    g_simple_async_result_is_valid() (at least, not for the error case).
    
    Bug 602417
  6. Add bug references to some tests

    Matthias Clasen
    Matthias Clasen committed Aug 14, 2010
  7. Document vendor override files

    Matthias Clasen
    Matthias Clasen committed Aug 14, 2010
    Features without documentation, tsk tsk.
  8. Fix doc format errors

    Matthias Clasen
    Matthias Clasen committed Aug 14, 2010
Commits on Aug 13, 2010
  1. Add tests for async file replace and load

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  2. Correct a comment

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  3. Add an async file create/write/read/delete test

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  4. Fix a typo, and some doc reformatting

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  5. Add some long descriptions for filter streams

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  6. Run volumemonitor test with local vfs

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
    This is an attempt to stop the test from hanging on some build bots
    in build.gnome.org.
  7. Bug 626841 – Add test-case for non-socket GIOStream

    David Zeuthen
    David Zeuthen committed Aug 13, 2010
    Also fix a couple of bugs so it actually works.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=626841
    
    Signed-off-by: David Zeuthen <davidz@redhat.com>
  8. Add some async file tests

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  9. Collect NEWS for 2.25.14

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  10. Bump version

    Matthias Clasen
    Matthias Clasen committed Aug 13, 2010
  11. GAsyncQueue: use g_queue_init() not g_queue_new()

    havocp authored and Matthias Clasen committed Aug 13, 2010
    By using g_queue_init() instead of g_queue_new(), we can avoid
    a separate memory allocation.
    
    Bug 626704
Commits on Aug 12, 2010
  1. Updated Swedish translation

    yeager committed Aug 12, 2010
Commits on Aug 10, 2010
Commits on Aug 9, 2010
  1. Update Simplified Chinese translation.

    Aron Xu
    Aron Xu committed Aug 9, 2010