Strace is my life

By 2015-01-11 Buffalo + Plex

This could be a cool geek T-shirt slogan if it weren’t so true. The next version of the firmware is ready and it has some great features and I’m stuck. FlexGet adds another 100Mb to the whole firmware because of a working Python 2.7 environment. (FlexGet needs it and the original firmware had 2.5 and 2.6 with minimal packages.)

Because of this, when upgrading, somehow after the unzip operation the automatic reboot doesn’t happen. Eventually LSUpdater loses interest and says it can’t communicate with the NAS. If you manually restart the NAS, the upgrade continues and finishes properly, but still, this is annoying and a lot of people would be upset seeing the LSUpdater message.

So now I’m trying to trace what’s happening in clientUtil_server, the linux counterpart to LSUpdater and why isn’t the reboot happening. clientUtil_server is a BuffaloTech proprietary binary file which makes it hard to understand. The only thing I found so far is that if I tell LSUpdater to copy the firmware to my disk first, instead of the default /boot, then the upgrade happens properly with the automatic restart. You’d think that /boot doesn’t have enough disk space and that’s why it’s failing, but I’ve been monitoring /boot during upgrade and it fills up to 45% only.

The other hard part is that it seems it’s not clientUtil_server executing the reboot as the strace doesn’t seem to contain anything related to it. The only difference is a small bit of code at the end of the trace which is missing when I try to update through /boot. It checks the network settings and kills some child processes. And for no apparent reason it’s missing if I give /boot as the temporary hold for the firmware. (I’m still analyzing that code.)

It’s not a deal-breaker, eventually, if I can’t fix it, I’ll release the firmware as is. In the Debug menu of LSUpdater you can redirect the temporary storage for the firmware on a nice GUI interface, but I’d rather do it properly. If anyone has experience with this, send me a note below, maybe together we can fix it faster.

4 Comments

  • nuwonda says:

    Thanks for the reply! Fair points regarding updating! Re NFS I was silly… I don’t need to mount anything as it turns out nfs://192.168.1.48/mnt/disk1/share just works from OSX or Openelec (.48 = Linkstation)
    Browsing for “nfs://” alone just doesn’t work on it’s own as the folder is not broadcast on the network I guess.
    One thing though, it seems any USB disk connected to the Linkstation does not show up on the NFS tab and hence cannot be shared via NFS? (e.g. /mnt/usb_disk1/)

    BTW re timezone and scheduler in flexget, timezone file had “Brussels” in it, I changed it to “Europe/Paris” but same result. I even recreated the localtime link to point to the zone info file, to no avail. Not sure where “scheduler” is looking for TZ and there are a few topics on that on flexget website where the “solution” was afaik to default to UTC if scheduler cannot find TZ. So it’s probably a flexget thing.

    Cheers!

    ps: I could not post/reply to the latest post anymore, your website still returns below error message when trying to post >>
    Not Acceptable!

    An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.

    • garyt says:

      Regarding the timezone issue, I’m wondering if FlexGet is looking for it in the wrong place. I didn’t chroot FlexGet but all the installs point to /usr/local/flexget so maybe copying the timezone file from /etc to /usr/local/flexget/etc/timezone would help. I’ll have to look into it better, I don’t have much experience with FlexGet.

      Regarding the security message, I’m afraid my hosting company is changing things around, the site’s been slow in the past 2-3 days. I’ll pick it up with them, again, thanks for raising.

  • nuwonda says:

    Log message copy/paste from scheduler cannot be posted! I found what triggers that server message of yours. I copy pasted the log error message from config.yml and it wouldn’t let me post it, i.e. “local tz name could not be determined yadda yadda to resolve set up etc / timezone with correct time zone name…

    • garyt says:

      I found your entry, thanks for raising it. I’ll check it and try to fix it.