Skip to main content

Strange problem on KVM VPS

This one for the X-Files.

I have been helping a client migrate his web server from one VPS to another because he needed more disk space. His previous VPS is based on Xen, and the migration is to a KVM-based VPS.

Everything was smooth-going at first. I installed Debian 7 x64, all the usual packages: nginx, php, mariadb etc. Easy. Configured and tested the setup. Easy.

Then I migrated his database and web server over and asked him to do some business-side testing. That was when we hit an unusual snag. His PayPal IPN wouldn't work.

At first, I traced the logs, thinking it was some kind of PHP code incompatibility. Nothing. The code will break at this point:

   $fp = fsockopen('ssl://www.paypal.com', 443, $eno, $estr, 30);

and never return.

I was stumped. So I wrote a simple test program that retrieves the HTTP and the HTTPS version of google.com. Lo and behold, the HTTPS fetch breaks right at that point with:

    Illegal instruction

I looked up what that means and found that it is just another name for the good ol' core dump. Shocked, I ran the same code on the Xen VPS (running the same Debian 7 and PHP version) and the code ran OK.

A number of searches did not turn up anything useful on this problem. It doesn't seem anyone else has encountered this. Having run out of ideas, I reported the details back to my client and suggested that he migrate to a Xen-based VPS instead.

I hope one day I will find out what this was all about...

Comments

Popular posts from this blog

Update: Line adapter for Ozito Blade Trimmer

Update (Dec 2021): If you access to a 3D printer, I would now recommend this solution , which makes it super easy to replace the trimmer line. I have been using it for a few months now with zero issue.

Line adapter for Ozito Blade Trimmer

This is an adapter for Ozito 18V battery trimmer (and possibly some Bosch trimmers as well) that uses a plastic blade for cutting. It lets you insert a 2.4mm trimmer line (about 8cm long) and use that for cutting. Simply cut a length of trimmer line and briefly heat up one end with a lighter so that a little bulb is formed. Then insert the trimmer line into the adapter and slot that into the trimmer as per normal. Make sure the trimmer line is not so long that it touches the safety guard. If that is the case, simply trim off any excess with a cutter or scissors. This part is best printed using PETG, which is a tougher and more flexible material. PLA is more rigid and breaks more easily. However, even with PETG, it will still break when it hits something really hard. Since this takes only 0.5m of material and 15 minutes to print, I will usually print a batch of nine at a time at very little cost. The blades that they sell do not break when it hits a hard object, but ...

3D Printer Filament Joiner

I have been looking at various ways of joining 3D printing filaments. One method involves running one end of a filament through a short PTFE tubing, melting it with a lighter or candle, retracting it back into the tubing and immediately plunging the filament to be fused into the tubing: One problem with this method is that you can't really control the temperature at which you melt the filament, so you frequently end up with a brittle joint that breaks upon the slightest bend. Aliexpress even sells a contraption that works along the same line. As it uses a lighter or candle as well, it suffers from the same weakness. I am not even sure why you need a special contraption when a short PTFE tubing will work just as well. Another method involves using shrink tubing/aluminium foil, and a heat gun: But a heat gun is rather expensive, so I wanted to explore other alternatives. The candle + PTFE tubing method actually works quite well when you happen to melt it at the rig...