Opened 12 years ago

Closed 3 years ago

Last modified 3 years ago

#37 closed defect (cantfix)

Stop doing blocking file IO

Reported by: seanegan Owned by: seanegan
Milestone: Component: libpurple
Version: 2.0 Keywords:
Cc: elreydetodo


On an NFS file system, Gaim can hang for unacceptably long times as it does file I/O

Change History (9)

comment:1 Changed 12 years ago by khc

I will give this a try, this has annoyed me for a long time at work.

comment:2 Changed 12 years ago by lschiere

  • Milestone set to 2.0.1

comment:3 Changed 12 years ago by rlaager

  • Milestone changed from 2.0.1 to 3.0.0

comment:4 Changed 10 years ago by infjaf

In the function purple_util_write_data_to_file_absolute (libpurple/util.c) it does fflush and fsync.

This function is called to save prefs.xml and this file is saved too much time (every time you move pidgin window!). To get worse, I guess this function is called from the main thread, so if the system is under heavy I/O load o have a bad response time from a network drive (NFS) pindgin interface gets unusable for a while (30 seconds or more).

So there are varios solutions:

  1. Saving less times prefs.xml (only on exit pidgin or prefs saved by the user, for example)
  2. Launching this task in a separate thread on the background.
  3. Not flushing the contents? I supposse this can be dangerous, but i'm not sure.

comment:5 Changed 9 years ago by etrusco

Maybe just adding an "importance" parameter to the save function to avoid calling sync for frivolous changes would be good enough?...

comment:6 Changed 3 years ago by salinasv

We have bumped the Glib version so we can use GIO now and this is a good place to do so.

comment:7 Changed 3 years ago by salinasv

  • Component changed from pidgin (gtk) to libpurple

comment:8 Changed 3 years ago by grim

  • Resolution set to cantfix
  • Status changed from new to closed

This ticket is too old and too vague. Closing because I don't know what it means for this ticket to be done.

comment:9 Changed 3 years ago by Robby

  • Milestone 3.0.0 deleted
Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!