Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

repeating disc-access of murmur and other

Help
rammel
2006-12-21
2012-10-30
  • rammel
    rammel
    2006-12-21

    Hello,

    1. thanks for that great project. we are using it with a yet small community and it works very well.

    2. I wonder about that kind of custom licence. because I'm no lawyer I want to ask if murmur/mumble is free (as speech) SW? if so, will it stay free? And if that is true, why did you not choose one from the standard licences ((l)gpl, bsd, apache, whatever)?

    3. Did you know that the name murmur is also used for an other project?
      http://museek-plus.org/wiki/murmur
      That confused me to some level while trieing to install your murmur on my gentoo box (its not in the repository yet) (in fact I ended up with the right mumble together with the wrong murmur at 4 am crieing some nights ago) :-)

    4. The main reason I'm writing this is that murmur is acting periodically at my disc and I want to ask why and if this could be turned off somehow?

    strace shows me that near every disc access:

    ) = 0 (Timeout)
    gettimeofday({1166715823, 871622}, NULL) = 0
    select(11, [], [], [], {0, 738}) = 0 (Timeout)
    gettimeofday({1166715823, 874752}, NULL) = 0
    gettimeofday({1166715823, 875023}, NULL) = 0
    fcntl64(7, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741824, len=1}, 0xbfd07344) = 0
    fcntl64(7, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741826, len=510}, 0xbfd07344) = 0
    fcntl64(7, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=1073741824, len=1}, 0xbfd07344) = 0
    access("/usr/bin/murmur.sqlite-journal", F_OK) = -1 ENOENT (No such file or directory)
    fstat64(7, {st_mode=S_IFREG|0644, st_size=27648, ...}) = 0
    _llseek(7, 0, [0], SEEK_SET) = 0
    read(7, "SQLite format 3\0\4\0\1\1\0@ \0\0\0\n\0\0\0\0"..., 1024) = 1024
    _llseek(7, 14336, [14336], SEEK_SET) = 0
    read(7, "\r\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
    fcntl64(7, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=1073741825, len=1}, 0xbfd073f4) = 0
    access("/usr/bin/murmur.sqlite-journal", F_OK) = -1 ENOENT (No such file or directory)
    open("/usr/bin/murmur.sqlite-journal", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0644) = 11
    fstat64(11, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
    open("/usr/bin", O_RDONLY|O_LARGEFILE) = 12
    _llseek(11, 0, [0], SEEK_SET) = 0
    write(11, "\331\325\5\371 \241c\327", 8) = 8
    write(11, "\0\0\0\0", 4) = 4
    write(11, "\254\355\307#", 4) = 4
    write(11, "\0\0\0\33", 4) = 4
    write(11, "\0\0\2\0", 4) = 4
    _llseek(11, 511, [511], SEEK_SET) = 0
    write(11, "\0", 1) = 1
    write(11, "\0\0\0\17\r\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1032) = 1032
    write(11, "\0\0\0\1SQLite format 3\0\4\0\1\1\0@ \0\0\0\n"..., 1032) = 1032
    fsync(11) = 0
    fsync(12) = 0
    close(12) = 0
    _llseek(11, 8, [8], SEEK_SET) = 0
    write(11, "\0\0\0\2", 4) = 4
    _llseek(11, 2576, [2576], SEEK_SET) = 0
    fdatasync(11) = 0
    fcntl64(7, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=1073741824, len=1}, 0xbfd071b4) = 0
    fcntl64(7, F_SETLK64, {type=F_WRLCK, whence=SEEK_SET, start=1073741826, len=510}, 0xbfd071b4) = 0
    _llseek(7, 0, [0], SEEK_SET) = 0
    write(7, "SQLite format 3\0\4\0\1\1\0@ \0\0\0\v\0\0\0\0"..., 1024) = 1024
    _llseek(7, 14336, [14336], SEEK_SET) = 0
    write(7, "\r\0\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
    fsync(7) = 0
    close(11) = 0
    unlink("/usr/bin/murmur.sqlite-journal") = 0
    fcntl64(7, F_SETLK64, {type=F_RDLCK, whence=SEEK_SET, start=1073741826, len=510}, 0xbfd07284) = 0
    fcntl64(7, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=1073741824, len=2}, 0xbfd07284) = 0
    fcntl64(7, F_SETLK64, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}, 0xbfd07264) = 0
    gettimeofday({1166715823, 885579}, NULL) = 0
    select(11, [3 8 9 10], [], [], {9, 986781} <unfinished ...>


    ...and if I enable dumping of fs-access to syslog It shows me that:


    Dec 21 16:46:45 sputti murmur(1627): dirtied inode 1683240 (murmur.sqlite-journal) on hda5
    Dec 21 16:46:45 sputti murmur(1627): WRITE block 27181072 on hda5
    Dec 21 16:46:45 sputti murmur(1627): dirtied inode 1680979 (murmur.sqlite) on hda5
    Dec 21 16:46:45 sputti murmur(1627): dirtied inode 1680979 (murmur.sqlite) on hda5
    Dec 21 16:46:45 sputti murmur(1627): WRITE block 27005328 on hda5
    Dec 21 16:46:45 sputti murmur(1627): WRITE block 27005456 on hda5


    I also noticed that murmur everytimes it starts creates a murmur.sqlite in /usr/bin (where also the executable lives) while my murmur.ini includes the line:
    database=/var/lib/murmur/murmur.sqlite (if I add an user to this file he can connect, so this file is read too).

    so what I'm doing wrong?

    than you in advance.

     
    • Jérôme
      Jérôme
      2006-12-23

      Hi,

      I had the same problem and was really affraid for my old hdd.
      So I searched for a solution and I think I found one.

      See the bug 1621320 for a description and a patch (works for me)
      http://sourceforge.net/tracker/index.php?func=detail&aid=1621320&group_id=147372&atid=768005

       
      • Pilot_51
        Pilot_51
        2007-06-22

        Will that patch be included with the next version of Murmur?

         
        • As mentioned in the bug report you are refering to, the patch is already applied to SVN, so it will naturally be part of the next version :)

           
      • rammel
        rammel
        2006-12-23

        Thank you, that seems to do the job!

         
    • Mumble and murmur source code is licensed under the BSD license, which is a pretty standard opensource license. The binaries are GPL though, as you'll need Qt to link them, and Qt is GPL.

      The sqlite directory is a bug and is already fixed in SVN.

      And murmur will naturally updated the database as people use the server. If there's no activity, no data access will be done, but when someone connects or updates their user profile there will be a database access, which means a disk access. If you absolutely do not want this, you can probably change the source code to use in-memory databases only, but then you'd have no persistance at all, meaning users can't register themselves and any channels made would be gone on the next server restart.

       
    • rammel
      rammel
      2006-12-21

      Thanks for that quick answer.

      But murmur is accessing my disk every 3..4s or so, even if nobody uses the server. that makes me a little bit nerveuse... ?

       
      • Really? Hmm. That would seem to be a "feature" in SQLite then. But from the dump you sent me, the only thing it accesses is the database, so no harm is done :)

         
    • rammel
      rammel
      2006-12-21

      hm ok, so lets hope my old harddisc isn't written to death :)