2.0.2 Call to undefined function xml_parser_create() in /etc/inc/xmlparse

  • Hi!

    After doing an auto upgrade from 2.0.1 to 2.0.2, I'm getting the following error on the console:

    Fatal error: Call to undefined function xml_parser_create() in /etc/xmlparse.inc on line 169.

    The web-configurator is down, and I cannot start anything. Any pointers on how to fix this?


  • Rebel Alliance Developer Netgate

    Full install? NanoBSD? Something else?

    That error seems to suggest that somehow it didn't get all of the required PHP modules during the upgrade, which I haven't seen any other reports of so far.

    Or, possibly, some package you have installed did something unexpected to those modules.

    Or, less likely but also possible, you accidentally upgraded to 2.1 and then tried to go back down to 2.0.2, which leaves some other files in place that can make PHP fail to load properly, causing errors similar to this.

  • It was a full install. And I just went from 2.0.1 to 2.0.2 via the auto upgrader. I have two pfsense boxes. One went fine, but facing this issue on the second one.

    Thank you for your help! I really hope there is an easy way to fix this. I really don't want to have to re-install :(

  • Rebel Alliance Developer Netgate

    Are they both i386? amd64?

    I they are mostly identical and one of them worked and the other didn't, then there could be something else going on that's contributing, like a failing hdd, but it's hard to say for certain.

    Can you show the output of:

    ls -lR /usr/local/lib/php

    Or at least look for xml.so, xmlreader.so, and xmlwriter.so and see what dirs they are in, and if they have sane file sizes.

    One way around it might be to somehow get the update .tgz file onto the box and then manually extract the files. If the xml libraries aren't correct then there is a good chance something else is also corrupted as well. (see above, re: hardware issue…)

    Failing that, you can install from CD, using "rescue" mode which should recover the config from the hdd when reinstalling.

  • I see all modules with the command you gave. This is a VM. Both VMs were i386.

    So you're saying rescue is my only option?

  • Rebel Alliance Developer Netgate

    It might be. It certainly appears as though something in the install has become corrupted.

    Three options:
    1. Somehow get the box online, fetch the update tgz and expand it by hand.
    2. Reinstall with rescue install to get the config from the hdd.
    3. Roll the VM back to a working snapshot and work from there.

  • I scp'd the config.xml from pfsense to another box, and did a re-install and restored config.

    Thanks a lot for your help! Don't know what screwed it up in the first place though!

  • I had the same thing happen to me as well. My solution was to login and delete the php module directory that started with 2009. I had also used the auto upgrade feature. It may have pulled the wrong bits due to a invalid auto-update url.

  • Hi Jon,

    Thanks for your reply. But since I've already re-installed, it's too late for me :)

    But it might help someone else a lot if you could detail the steps you took to resolve this!

    Thank you for your help!

  • Rebel Alliance Developer Netgate

    If you have the 2009* dir there, that means you upgraded to 2.1 and then downgraded to 2.0.x, which isn't supported.

    If auto update did that, someone must have selected the snapshots url from the drop-down menu at some point.

Log in to reply