Ticket #7941 (closed defect: fixed)

Opened 6 years ago

Last modified 6 years ago

XO User Listing from XS has no listings

Reported by: kimquirk Owned by: martin.langhoff
Priority: high Milestone: 8.2.0 (was Update.2)
Component: school server Version: not specified
Keywords: blocks?:8.2.0 Cc: dsd
Action Needed: diagnose Verified: no
Deployments affected: Blocked By:


joyride 2263 (and 2230)

After ensuring that a laptop has successfully saved data to the schoolserver (following test cases, Tests/XS/BackupDS and Tests/XS/RestoreDS), when I go to schoolserver/ds-restore from a browser I get a page that says "User Listing", and then there are no files listed.

Change History

Changed 6 years ago by kimquirk

  • owner changed from martin.langhoff to dsd

Changed 6 years ago by dsd

  • cc dsd added; martin removed
  • owner changed from dsd to martin.langhoff

I have looked into this on the XS side. I can't figure out how it is supposed to work. There seems to be a disconnect between how /var/www/ds-backup/ds-restore.php works, and how everything is set up on the filesystem.

  • /library/users/<SN> is has <SN>:<SN> ownership and 700 permissions. ds-restore.php cannot peek inside. I temporarily fixed to 755.
  • ds-restore.php looks for /library/users/<SN>/datastore-latest but this does not exist. datastore-current is where stuff is kept.
  • when modifying it to look for -current instead of -latest, it still fails, because it expects a symlink pointing to a directory which has a parseable date.

I took a quick look in ds-cleanup.py looking for code that would take datastore-current, create the -latest symlink and a by-date snapshot, but I didn't see anything.

How should this be working?

Changed 6 years ago by martin.langhoff

Perhaps give the README that ships with ds-backup a quick read - explains most of it. In brief:

  • Make sure you have ds-backup-server-0.7 (-1 I think) on the server
  • Permission-wise we use ACLs - "apache user can read" - because mode 755 means kids can read eachothers' files via sftp/rsync.
  • There's an incrond hook - which calls postprocess.py and various things, including the the symlink you're missing

rpm -ql ds-backup-server should show you all the files, and how those hooks are invoked...

Changed 6 years ago by martin.langhoff

Actually, I lie. The commit msgs are good and full of info, but the README is crap. Apologies.

Full log is your friend: http://dev.laptop.org/git?p=users/martin/ds-backup.git;a=log;h=v0.7

Changed 6 years ago by martin.langhoff

This is very strange. On the joyride-2270 I have here, ds-backup-client is still 0.6 but it seems that the build system should have picked it up. See these 2 links:

http://xs-dev.laptop.org/~cscott/repos/joyride/ http://xs-dev.laptop.org/~cscott/repos/joyride/ChangeLog

But the buildlog has it picking the old one: http://xs-dev.laptop.org/cscott/olpc/streams/joyride/latest/devel_jffs2/build.log


Changed 6 years ago by dsd

OK. First problem was the ds-backup-client on the XO too old (#7919), and second problem is that incrond is not running by default on the schoolserver. I put it in runlevels 2,3,4,5. Can you fix that for the next build?

Changed 6 years ago by martin.langhoff

Ah! Thanks for chasing that down - chkconfig during xs-config install.

Changed 6 years ago by martin.langhoff

  • status changed from new to closed
  • resolution set to fixed

This is fixed with ds-backup-server-0.8-1-olpc3.rpm -- nothing needs to happen on the XO/joyride side, the new server pkg will be in xs-0.4 .

Note: See TracTickets for help on using tickets.