-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vsd leaves xvfb behind #30
Comments
I'll have a look at this when I'm felling a little better (nasty virus thing). I think this has not been fixed, however the files on Ivan's website are no longer being updated, so you'll want to look at the sources on github going forward. |
Thanks for your quick feedback. I looked at https://github.com/RasppleII/a2cloud/blob/master/setup/vsd.txt#L35 and I didn't see a relevant change. |
I'm under the impression, perhaps mistaken, that xvfb-run's purpose is to start Xvfb with appropriate arguments, then kill it when the command completes, and in my tests it seems to be doing that. It doesn't always die immediately on RPi, but it does exit. |
Ah, a thought: Do the extra Xvfbs disappear after 30 seconds? https://github.com/RasppleII/a2cloud/blob/master/setup/adtpro.sh.txt#L143 |
I redid everything from scratch in order to reproduce:
|
If they aren't dying after 30 seconds, that's definitely a bug. (They shouldn't need 30 seconds to die, but I've never really trusted that sleep as a means of keeping people from running ADTPro more than once on older Pis...) Still, if something's keeping Xvfb running, I'm not sure what it is--it's supposed to exit when the command does, and other clients do properly quit out. I wonder if java is just not exiting? |
Perhaps there's some way, as a workaround for the time being, that we can identify the Xvfb process in need of killing and dispatch it ourselves? Might have to rewrite the xvfb-run script to do it, although that'd make our solution portable to non-Debian-based Linux systems which have Xvfb, but don't have Branden's xvfb-run script. That's a plus all on its own since, although I intend to make things be installed using Debian packages, part of the reason for doing it that way is to eventually divorce A2CLOUD and A2SERVER from specific dependency on Debian by moving the Debianisms to Debian package scripts. |
No. Many Xvfb, but only one xvfb-run and only one java:
|
This is interesting. Would you please compare the sha1sum of your It should be the same, and I've got no doubt that it is as I suspect
If it's not, we can try jessie's xvfb-run. Otherwise, we're going to Joseph On Tue, Oct 25, 2016 at 12:16:17PM -0700, Oliver Schmidt wrote:
|
Stupid question: Have you tried to reproduce the issue? |
Yes, but not in the strictest sense. I've tested it on my Raspbian jessie beta briefly and it looks like it works. I tested it a little more extensively on my amd64 Debian sid development machine and again it appears to work fine. But I haven't tested Ivan's 2015 release at all, in part because I haven't got another microSD card at the moment and because I've never been able to actually build it, so patches are difficult. This is somewhat less than ideal. It was supposed to be a nice, easy transition. Ivan had ported his build system to jessie which was supposed to be released for KFest. I was going to take the next six months and come up with a clean way to reproduce his release using something approximating standard build tools and get it right so that others can help develop it. In September, with no release for jessie and no actually building codebase, I got handed the whole thing, except I can't actually edit anything on Ivan's website, and I didn't even have a functioning beta. In October, I released a beta to not one single report of success or failure, so I have no idea whether it works for anyone besides me even a little bit. Yours is the first feedback I've got, and it's for a bug I don't have against a version I can't test without basically backing up and wiping the "hard drive" of my test system for the year-overdue release I've been frantically trying to finish while dodging viruses, a fiancee who spent a week in the hospital, and there are still things I need to be able to do here that I just don't know how to do by myself. I'm really trying to solve the problem here, but I'm grasping at straws. The manpage says Xvfb is supposed to be killed. I see that on my system, it is killed with a variety of clients, including ADTPro. But I'm not using the same OS version, the same JRE, or the same CPU architecture for the majority of my testing. Hopefully when there is an actual jessie release, that'll begin to change more. At the very least I hope to invest in another Pi 3 kit in the next several months so that I can go through the entire process end-to-end with the kit a new user would likely buy, on video. |
First of all thanks for the detailed answer :-)
Reminds me on the situation with cc65: The domain cc65.org is still not mine to present day and it took many months until the former maintainer of cc65 put a link on his site pointing to my site.
Maybe I misunderstand things but as long as http://ivanx.com/rasppleii/ is the site coming up on Googling 'raspple 2' or and that site only links Ivan's 2015 release this likely won't change much. Working hard for the community and not getting feedback at all sucks ! I know...
That doesn't make sense from my perspective! I only reported that issue to make you aware of it and help avoiding it in further releases. Now you are aware of it and likely will check for Xvfb proccesses now and then when testing upcoming releases. And in case (although I don't think so) that it only happens when going for Ethernet instead of serial then that's okay too as you plan to support Ethernet in the future and will therefore likely test it. So from my perspective everything is fine and there's no need for you to invest any more of your scarce time into this legacy release. PS: Best wishes for a speedy recovery to your fiancee ! |
FWIW, if I came across sounding critical there, that's not intentional at all. I may letting my frustration peek through a little at not having an actual release out the door yet. Right now I'm trying to pick apart some weirdness with A2SERVER and have had to go and have done a few things I intended to hold off on that'll be pushing toward a 1.6.0 in the Jessie release to fix. I've gotta come back to A2CLOUD afterward and likely do much the same thing. This issue doesn't appear to be happening on sid, and a quick look didn't show it on jessie, but technically we still do support wheezy, and you're seeing it there. I just can't currently test it there. So it seems that leaving this issue open is a good idea--I'm just limited in my ability to come up with an immediate fix until I rustle up another microSD card, or figure out how to get the Pi 3 to boot off of one of the myriad USB sticks I have laying around. And fixing it is something I'd like to do. I actually bought two of Glenn's Uthernet II cards, and I had yet to actually use one of them--but you know what I have in mind for the future of Ethernet on the Apple //. Actually, I'd like to go a step further and see things go in a wifi direction at some point--with Apple //c support. I don't know if the issue you're seeing only happens with Ethernet, but I doubt it. Once I have a release out the door, I'm reminded that I need to bring up CC65. Cross development for the Apple // and IIgs is high on my priority list. |
Not a t all. I hoped my reaction made clear that I rather appreciated your open words!
That's great so you can actually test the new Uthernet II support in the upcoming ADTPro 2.0.2 :-)
As you know I have plans here too - which I don't want to publish at this point. So before investing time I suggest to get in touch with me in order to coordinate / avoid double work...
You may have noticed that it becomes sort of popular to use the RPi as common ground for cross development tools in the embedded space. One might think about installing cc65 on the RPi (it doesn't have a GUI anyway so a terminal / Telnet / SSH with any editor is just fine). ADTPro includes AppleCommander already which is great to push a binary into a disk image. So all together would allow to write some C code on the RPi and have the result served to the A2 via a virtual disk. Doing this via ProTERM from the A2 would turn the cross development into (sort of) a native development ;-)) |
I haven't updated this issue, but I think I've figured out what's going on here. When xvfb-run starts ADTPro, it doesn't really have a good way of knowing that it has exited cleanly. When you run the vsd scripts, it seems that ADTPro is being terminated but, before the Xvfb process is shut down, it's being restarted. The xvfb-run script will then start a new server, seeing that the display it has been using is occupied. The best solution I can see to this is to stop starting multiple Xvfb servers. What I'm working on going forward is for an These two init scripts would easily make two systemd services which would be easy to write. They could be implemented a single init script, however the result would NOT be an easy single systemd service. Essentially, it's quite easy to make how it works for sysvinit or upstart the same as how it works for systemd. We currently only really try to support systemd and sysvinit, the defaults of Debian 8+ and 7 respectively, but one of my goals is to eventually have this stuff be distribution-agnostic. You just can't write a portable init script sadly (LSB fails to provide some essential tools for that), but the one I've got is easily ported from Debian style (start-stop-daemon) to Red Hat style (daemon) should someone ever care to do it. In fact, I see no reason why A2CLOUD could not at some point be used on a Mac or even a carefully curated Windows UNIX-like cygin/msys2 environment. Either install the tools you need or write a shell function that runs the method of installing programs on your system. A2SERVER with netatalk ... is a harder sell on non-Linux systems. (I think FreeBSD may have the option of AppleTalk networking support? I don't know.) But that's a whole different issue. |
The vsd script (http://appleii.ivanx.com/prnumber6/a2cloud-insert-a-disk-image/) kills the ADTPro process but it doesn't kill the xvfb process. So every disk image change leaves you with another unused xvfb.
The text was updated successfully, but these errors were encountered: