I have been getting this error for months now. My jails are officially broken. I have tried updating python and many other things. I am not a programmer. Any help would be appreciated. I am running freeBSD 12.1-RELEASE-P9 on AMD64.
Code:
* ob
object : <refcnt 0 at 0x802d13b30>
type : str
refcount: 0
address : 0x802d13b30
* op->_ob_prev->_ob_next
object : <refcnt 0 at 0x802d13b2f>Segmentation fault
sandra@mail:~ % sudo certbot renew -q
Password:
* ob
object : <refcnt 0 at 0x802d14660>
type : str
refcount: 0
address : 0x802d14660
* op->_ob_prev->_ob_next
object : <refcnt 0 at 0x802d1465f>Segmentation fault
sandra@mail:~ %
sandra@mail:~ %
This is the error to #sudo portmaster security/py-certbot-nginx@py37 security/py-certbot@py37
Code:
Exception occurred:
File "/usr/local/lib/python3.7/site-packages/sphinx/util/stemmer/__init__.py", line 14, in <module>
from Stemmer import Stemmer as _PyStemmer
SystemError: init function of Stemmer returned uninitialized object
The full traceback has been saved in /tmp/sphinx-err-fcs_my60.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
*** Error code 2
Stop.
make[1]: stopped in /usr/ports/security/py-certbot
*** Error code 1
Stop.
make: stopped in /usr/ports/security/py-certbot
===>>> make build failed for security/py-certbot@py37
===>>> Aborting update
===>>> Update for py37-certbot-1.6.0,1 failed
===>>> Aborting update
===>>> You can restart from the point of failure with this command line:
portmaster <flags> security/py-certbot-nginx@py37 security/py-certbot@py37
This command has been saved to ~/portmasterfail.txt
Yes, I normally install from ports (actually I only use ports)
with above command, except I am using sudo.
I am having issues also with cmake. Elsewhere I attempted to install cmake with root from my box, that did not work. I have tried adding the following to my make.conf file:
While it seems that GCC and Clang get along fairly well even when linking against C++ code build with the opposing compiler they don't seem to agree on RTTI (which is mostly used to implement dynamic_cast i think). So when the application compiled with g++ calls into a system library (likely...
forums.freebsd.org
Regarding my jails, I set up jails with iocage, but for several months, this is what I get when I invoke iocage list:
Code:
# iocage list
* ob
object : <refcnt 0 at 0x802fb4d60>
type : str
refcount: 0
address : 0x802fb4d60
* op->_ob_prev->_ob_next
object : <refcnt 0 at 0x802fb4d5f>Segmentation fault (core dumped)
My server is nginx
Up until yesterday it was working as it has been in the main host, however, now it is down because the certificate has expired as of yesterday.
I'm running 12.1-p2 on amd64. Recently, when trying to update ports I ran into a problem while updating cmake. The error looks like this: root@miller:/usr/ports/devel/cmake # make install clean ===> Building for cmake-3.16.3 [ 4%] Built target cmsys [ 6%] Built target cmsys_c [ 6%] Built...
Have you got another machine (even a VM under VirtualBox) that you can try and build things from scratch?
Get a list of the ports you currently have installed (e.g. use pkg info) on the messy machine.
Start a new machine (with same OS), and use ports to build what you think you need but don't obsess too much with specific Python versions - just try any defaults to start with.
Can you get cmake to build without Python errors? Likewise Sphinx. Can you get certbot to run - not "in anger" but print a version string or something minor like that - so all this on the test box. Document any steps you take and choices made.
If that all works, you could then clean out the ports on the problematic machine and build from scratch (as you just did on the dev/test machine.) At this point you know it works on another machine, so it's "just" a question of following the same steps.
It might be easier than trying to untangle what you've got now. Unless someone else comes up with a specific list of steps to fix each issue you are encountering.
Good point, yes. I assumed the OP needed to use ports - but if not - a lot quicker/cleaner/easier to install the corresponding packages instead. Again, something you can try for yourself on a test machine/environment to be comfortable it's going to work.
Good point, yes. I assumed the OP needed to use ports - but if not - a lot quicker/cleaner/easier to install the corresponding packages instead. Again, something you can try for yourself on a test machine/environment to be comfortable it's going to work.
I've read in so many places that ports are better. That is why I have always used them.
Ok, I have another server. I will start from scratch. The first problem, was the iocage problem. I believe it is python related. I believe it occurred after updating python.
I think using ports gives you at lot more control, a lot more options - all "better" - and a lot more ways to shoot yourself in both feet. Not so good.
So unless you have to use them I think pkg is the way to go.
I use ports because I think that's the only way I can make sure I am using the latest OpenSSL across the board.
You may find as you go through this process you do need to use ports, but if you don't - it should make your life simpler. And if you discover you do need to use ports, trying pkg has proved the point that you do need ports, so not time wasted.
But keep the dev/test environment around as well. Then you can test any upgrades on there first.
Good luck!
Oh, and as anoymous9 said - keep it simple - remove anything from /etc/make.conf, try the defaults first (e.g. Python versions), before any tweaking, if you are using ports.
great thanks, I will
question, what is the significance of
object : <refcnt 0 at 0x802fb4d5f>Segmentation fault (core dumped)
Here is another error
Code:
Done configuring
===> Building for py37-libxml2-2.9.10_1
setup.py:1: ResourceWarning: unclosed file <_io.BufferedReader name='setup.py'>
#!/usr/bin/python -u
ResourceWarning: Enable tracemalloc to get the object allocation traceback
libxslt stub generator not found, libxslt not built
/usr/local/lib/python3.7/distutils/dist.py:259: UserWarning: 'licence' distribution option is deprecated; use 'license'
warnings.warn(msg)
running build
running build_py
creating build
creating build/lib.freebsd-12.1-RELEASE-p9-amd64-3.7-pydebug
copying libxml2.py -> build/lib.freebsd-12.1-RELEASE-p9-amd64-3.7-pydebug
copying drv_libxml2.py -> build/lib.freebsd-12.1-RELEASE-p9-amd64-3.7-pydebug
running build_ext
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "setup.py", line 238, in <module>
data_files=data_files,
File "/usr/local/lib/python3.7/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/lib/python3.7/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.7/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/usr/local/lib/python3.7/distutils/command/build.py", line 135, in run
self.run_command(cmd_name)
File "/usr/local/lib/python3.7/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.7/distutils/dist.py", line 983, in run_command
cmd_obj = self.get_command_obj(command)
File "/usr/local/lib/python3.7/distutils/dist.py", line 857, in get_command_obj
klass = self.get_command_class(command)
File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 834, in get_command_class
self.cmdclass[command] = cmdclass = ep.load()
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2443, in load
return self.resolve()
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2449, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/usr/local/lib/python3.7/site-packages/setuptools/command/build_ext.py", line 26, in <module>
__import__('Cython.Compiler.Main')
File "/usr/local/lib/python3.7/site-packages/Cython/Compiler/Main.py", line 28, in <module>
from .Scanning import PyrexScanner, FileSourceDescriptor
SystemError: init function of Scanning returned uninitialized object
*** Error code 1
Stop.
make: stopped in /usr/ports/textproc/py-libxml2
===>>> make build failed for textproc/py-libxml2@py37
===>>> Aborting update
===>>> Upgrade of libxml2-2.9.10 to libxml2-2.9.10_1 complete
===>>> You can restart from the point of failure with this command line:
portmaster <flags> textproc/py-libxml2@py37
This command has been saved to ~/portmasterfail.txt
My server is nginx
Up until yesterday it was working as it has been in the main host, however, now it is down because the certificate has expired as of yesterday.
To get your web server back up and running I would install security/acme.sh which is a shell script for obtaining/renewing Let's Encrypt certificates. No Python needed.
It should end up in the current directory as [binaryname].core (certbot.core? if that's actually the binary that's segfaulting). You can load it using lldb -c filename and get a backtrace of the failing code by typing bt. It's likely not going to be overly helpful on it's own though.
Yes they are better for Administrators who wants to use later versions of the programs or are using different configuration of the ports than the default which is used in the pkg.
Always update all ports as most of them have same dependencies.
When you are using ports and you want to upgrade an installed port your first task is to read /usr/ports/UPDATING it contain the information of any MAJOR changes which WILL BREAK your ports if you do not follow the instructions in it about how to update your port.
If the port version change is MINOR and doesn't require any configuration change it will be not listed in /usr/ports/UPDATING
After each port update it's useful to take a note of the last date in /usr/ports/UPDATING so the next time when you updating your ports you can read only the last new notes in UPDATING file.
Regarding your issue:
When you are installing a port which has a flavors you do not specify which flavor you want to install of that port. In this case when certbot is build it will detect which version of python you have and will pick the flavor depending of what it will find. For example if you have python3.6 the certbot will detect that and it will install py36-certbot. If you build py37-certbot and you have the old version of python OR some old modules which are for py36 then you will start see those errors because of the version mismatch.
Hot to fix: In short uninstall py* and install again python37 and py-certbot
Before every Update you have to make a full backup. Then if you have time i advice you to restore this backup on test virtual machine and perform a test update in this virtual machine while performing this update to take notes about every step(command) that you use to update the software there. After the update you verify if everything is working and then perform actual update on production server following all your notes that you have taken during a test update in virtual machine. Note: you can't perform all test of the software as some of it depend of FQDN, valid certificates, having specific public IP address and so on but you can actually test that the software is complied and running. In the test virtual machine you can't install the new certificates for example.
When you are upgrading to major version of the program in this case python3.6 to python3.7 you need to first check which programs are depending of python3.6 and verify if those program support the new version of python. It's valid for every upgrade for example upgrading php72 to php74 you have to verify all installed programs that depend of it.
To do this you can use pkg-info(8) and take a note for the programs that you want to update.
In your case python36 pkg info -r python36
From the output you take a note for the programs that you need to update (keep after reinstall). You can write down only the programs that you want. For example
To see all programs that are installed and required python37 pkg info -r python37
From this list i need only
py37-certbot-1.7.0,1 and mc-nox11-4.8.24
All other modules will be installed as dependencies during the installation of above two programs so you do not need to write all of them down.
Then read the UPDATING file regarding how to proceed with the update of python3.7 less /usr/ports/UPDATING
20200107:
...skipping...
Default version of python3 and python was switched to 3.7.
For ports users wanting to keep version 3.6 as default,
add DEFAULT_VERSIONS+= python=3.6 python3=3.6 to make.conf
This may ease the upgrade for users of pre-build packages:
# sh
# for i in $(pkg query -g %n 'py36-*'); do pkg set -yn ${i}y37-${i#py36-}; done
# pkg upgrade
Uninstall python36 and all py36 modules (this will break all programs that depend on it and they need to be rebuild after the new version of py37 is installed that's why we take a note with pkg info)
You can use pkg autoremove here to Uninstall those program OR leave them in non working condition until you rebuild them again. I personally leave them so i can rebuild them later usually with "pkg shlib -qR {name of the old .so lib}" which is not in this case with python upgrade instead of removing them with pkg autoremove
Uninstall py*-certbot
Install lang/python37
Install security/py-certbot (it will detect that python37 is installed and it will install all required py37-* modules as well)
Python37 installs fine, but then cerbot does not. This is the error I get for this command:
/usr/ports/security/py-certbot % sudo make install
Code:
===> Building for py37-certbot-1.7.0,1
setup.py:1: ResourceWarning: unclosed file <_io.BufferedReader name='setup.py'>
import codecs
ResourceWarning: Enable tracemalloc to get the object allocation traceback
running build
running build_py
running egg_info
writing certbot.egg-info/PKG-INFO
writing dependency_links to certbot.egg-info/dependency_links.txt
writing entry points to certbot.egg-info/entry_points.txt
writing requirements to certbot.egg-info/requires.txt
writing top-level names to certbot.egg-info/top_level.txt
reading manifest file 'certbot.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '__pycache__' found anywhere in distribution
warning: no previously-included files matching '*.py[cod]' found anywhere in distribution
writing manifest file 'certbot.egg-info/SOURCES.txt'
(cd /usr/ports/security/py-certbot/work-py37/certbot-1.7.0/docs && sphinx-build-3.7 -N -b man . _build/man)
Running Sphinx v3.2.1
Exception occurred:
File "/usr/local/lib/python3.7/site-packages/sphinx/util/stemmer/__init__.py", line 14, in <module>
from Stemmer import Stemmer as _PyStemmer
SystemError: init function of Stemmer returned uninitialized object
The full traceback has been saved in /tmp/sphinx-err-39ha02g8.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
*** Error code 2
Stop.
make[1]: stopped in /usr/ports/security/py-certbot
*** Error code 1
Stop.
make: stopped in /usr/ports/security/py-certbot
sandra@mail:/usr/ports/security/py-certbot %
You already have python37 so it will be faster first to try only with rebuilding certbot.
Also after making portsnap auto check which other ports need updating with pkg ver | grep "<"
You can't use pkg as you will install old version of certbot and it will need to remove all other ports which depend of the same libs. This is the reason never to mix ports with pkg. If you have even a single app installed from ports you have to build all other programs from the ports too.
So it's working as expected.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.