Dear OBS Devs,

with obs-api-2.11~alpha.20210618T095403.f2091342ed-lp152.12530.1.noarch I can not create new packages in private instance.

osc mkpac packageC
cd packageC
osc commit -m "initial in obs"
Sending meta data...
Server returned an error: HTTP Error 500: Internal Server Error

Request: https://obs/source/home%3Amgoppold/packageC/_meta
Headers:
Date: Tue, 22 Jun 2021 17:57:32 GMT
Server: Apache
X-Request-Id: eea5880f-6f48-4bcf-8272-1a19a2d75d10
X-Runtime: 0.084162
X-Powered-By: Phusion Passenger(R) 6.0.8
Content-Length: 131
Status: 500 Internal Server Error
Cache-Control: public
Connection: close
Content-Type: application/xml; charset=utf-8

Update / modifying existing packages works fine.

The Error occur on cmdline and WebUI.

production.log:

I, [2021-06-22T18:14:57.924545 #2200]  INFO -- : [d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c] [2200:325.61] method=POST path=/package/create/home:mgoppold format=html controller=Webui::PackageController action=create status=500 error='ThinkingSphinx::SphinxError: index package_core: does not support DELETE (enabled=1) - DELETE FROM package_core WHERE sphinx_internal_id IN (1226)' duration=28.79 view=0.00 db=5.07 params={"authenticity_token"=>"[FILTERED]", "package"=>{"name"=>"packageC", "title"=>"", "description"=>""}, "commit"=>"Create", "project"=>"home:mgoppold"} host=192.168.156.10 time=522.79 backend=0 user=mgoppold
F, [2021-06-22T18:14:57.929467 #2200] FATAL -- : [d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c] [2200:325.62]  
[d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c] ThinkingSphinx::SphinxError (index package_core: does not support DELETE (enabled=1) - DELETE FROM package_core WHERE sphinx_internal_id IN (1226)):
[d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c]  
[d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c] app/controllers/webui/package_controller.rb:295:in `create'
[d2b6d7f0-81dd-4e23-a4e6-042eb2f2944c] config/initializers/wrap_parameters.rb:37:in `call'

After the update, I also did the following:

cd /srv/www/obs/api/
RAILS_ENV=production bin/rake migrate_options_yml
RAILS_ENV=production bin/rails db:migrate:with_data

Now I read the  ReleaseNotes-2.11 ( README.SETUP is  a broken link )  an do as suggested

chroot --userspec=wwwrun:www / /bin/bash -c "cd /srv/www/obs/api/ && /usr/bin/bundle.ruby2.5 exec rails ts:rt:rebuild RAILS_ENV=production"

The last one gives:

using config file '/srv/www/obs/api/config/production.sphinx.conf'...
listening on 127.0.0.1:9314
precaching index 'package_core'
precaching index 'project_core'
precached 2 indexes in 0.001 sec
Started searchd successfully (pid: 3280).
Generating index files for package_core
rails aborted!
ThinkingSphinx::ConnectionError: Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '127.0.0.1' (115)
bin/rails:4:in `require'
bin/rails:4:in `<main>'

Caused by:
Mysql2::Error::ConnectionError: Can't connect to MySQL server on '127.0.0.1' (115)
bin/rails:4:in `require'
bin/rails:4:in `<main>'

Caused by:
Innertube::Pool::BadResource: Innertube::Pool::BadResource
bin/rails:4:in `require'
bin/rails:4:in `<main>'

and the error on commit changes to:

I, [2021-06-22T18:34:10.840529 #2200]  INFO -- : [ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] [2200:1478.53] method=PUT path=/source/home:mgoppold/packageD/_meta format=xml controller=SourceProjectPackageMetaController action=update status=500 error='ThinkingSphinx::ConnectionError: Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '127.0.0.1' (115)' duration=73.23 view=0.00 db=5.89 params={"project"=>"home:mgoppold", "package"=>"packageD"} host=172.17.6.27 time=1675.66 backend=0 user=mgoppold
F, [2021-06-22T18:34:10.861620 #2200] FATAL -- : [ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] [2200:1478.55]  
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] ThinkingSphinx::ConnectionError (Error connecting to Sphinx via the MySQL protocol. Can't connect to MySQL server on '127.0.0.1' (115)):
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881]  
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] app/models/package.rb:712:in `block in update_from_xml'
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] app/models/package.rb:678:in `update_from_xml'
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] app/controllers/source_project_package_meta_controller.rb:55:in `update'
[ecaffcec-eb7a-443f-a4fa-3cd2e1bfc881] config/initializers/wrap_parameters.rb:37:in `call'

That got me in the right direction: configure searchd (sphinx). Because my search "open build service configure searchd sphinx"  didn't come up with anything useful I did:

cat > /etc/systemd/system/searchd.service.d/override.conf <<EOF[Service]
User=wwwrun
Group=www
EOF

ln -sf /srv/www/obs/api/config/production.sphinx.conf /etc/sphinx/sphinx.conf
systemctl enable --now searchd.service
chroot --userspec=wwwrun:www / /bin/bash -c "cd /srv/www/obs/api/ && /usr/bin/bundle.ruby2.5 exec rails ts:rt:rebuild RAILS_ENV=production"


Which solved my problem.

Was that all I had to do or should I set up some more?

Shouldn't that be in a README or ReleaseNotes-2.11?

Best regards,

Mario


P.S. Thank you for the nice pice of software!