Panic on Pydio Cells start

My latest attempt:
internal bind: 0.0.0.0:8995
external bind: 111.222.33.44:8995 (used my real ip in config)

Result is the same…

Note:

During the initial command line installation process, should the database be populated before your first visit to the website? I would imagine it would be during the CLI install, however mine is still empty after install. The connection is correct and the install process says it can connect.

Edit:
This is on a new install of ubuntu server 18.04
This also includes a LAMP stack, and port 8080 taken by another service

Hi,
Could you confirm me that you did this, ulimit -n 8192.
Now, let’s try 2 configurations to figure out where the issue might be located.

Assuming that you can access/ping your machine if you are on the same network.

Case 1

First we are going to try with your private address for instance in my case it’s 192.168.0.105,
so

Other: 192.168.0.105:8888
External Host (used to access this machine from outside world if it differs from Bind Host): 192.168.0.105:8888

You should be able to finish your installation, then on your browser(if connected on same network) visit http://192.168.0.105:8888.

Case 2

Now second case public address for instance let’s say that my public address is 45.127.87.90

Other: 45.127.87.90:8888
External Host (used to access this machine from outside world if it differs from Bind Host): 45.127.87.90:8888

You should be able to finish your installation, then on your browser go on http://45.127.87.90:8888.

Extra case

If you have a domain name registered on your public IP,
you can reproduce the 2 case by only replacing the 45.127.87.90 part, keep the port the same for both internal & external.

Database

You said that there is no record of anything in the database,
could you test it with a different database, for instance mariadb, you could pull a container
docker run -it -d --name database -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mariadb:latest
It’s binded on a different port so that it will not interfere with your database, just make sure that when you install your pydio cells, on the database step to put your servers IP for host and 3307 for the port ( password is root for testing purposes).

This is my current network set up: (sensitive data changed, but kept persistent)
Note, this is a remote dedicated server provisioned by OVH.

~ifconfig~
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 143.18.534.88  netmask 255.255.255.0  broadcast 143.18.534.255
        inet6 fe81::24e:63ef:fee6:5a49  prefixlen 64  scopeid 0x20<link>
        inet6 2807:5220:60:8e0a::  prefixlen 64  scopeid 0x0<global>
        ether 00:1e:67:e6:5a:49  txqueuelen 1000  (Ethernet)
        RX packets 51955685  bytes 62906126087 (62.9 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37592045  bytes 4977054338 (4.9 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xb1200000-b127ffff

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 528395  bytes 124066534 (124.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 528395  bytes 124066534 (124.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

So for case one, I would be able to use the loopback, but that is it. For case two I can use my dedicated public IP, or the TLD associated with it.

With this in mind, do you have any specific recommendations?

On your OVH interface is there any public address?
i’m not familiar with OVH but you need a public address to access your server from the outside.

The issue would be that you will not be able to access your pydio from the exterior.

Yes
inet 143.18.534.88 netmask 255.255.255.0 broadcast 143.18.534.255
^ This refers to my public (external IP)

All attempts have lead to the same error. At this point there has to be something missing from the requirements portion of this software. This has happened with two separate installs of Ubuntu 18.04.

I’m about to give up on this as a solution.

I have used my loopback as my internal address (this has been in the form of localhost:8888, 127.0.0.1:8888, and 0.0.0.0:8888)

There is no access to local network, this is common for dedicated servers. This is not a server being held in my own house, it’s a dedicated server provided by a company.

I have used my TLD and IP as my external address (111.222.33.44:8888, and toplevedomain.com:8888)

This resulted in the same error and noted above

I have used my loopback on both internal and external bind to then tunnel in to get it to work (0.0.0.0:8888, 127.0.0.1:8888, and localhost:8888)

Same issue as before

What am I missing here?

I am willing to do an ssh screen session with some official support rep, provided they can provide their public key.

Edit: Moved over to MariaDB
-v

10.3.11-MariaDB-1:10.3.11+maria~bionic - mariadb.org binary distribution

Ended in same error, After initial install, no data was populated.

I do have the same issue with version 1.2.4:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xf8b78a]

goroutine 308 [running]:
github.com/pydio/cells/vendor/github.com/micro/go-web.(*service).Init(0xc42343a8c0, 0xc4234bf800, 0x8, 0x8, 0x24, 0x1)
        /opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/micro/go-web/service.go:298 +0x31a
github.com/pydio/cells/common/service.WithWeb.func1.2(0x6ce1ee0, 0xc42344f800, 0x486d777468487974, 0x6e55707162696a6b)
        /opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/service/service-web.go:80 +0x529
github.com/pydio/cells/common/service.(*service).Start(0xc42344f800)
        /opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/service/service.go:370 +0x1fe
created by github.com/pydio/cells/cmd.glob..func27
        /opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/cmd/services-start.go:150 +0xa3

It’s the same for both my public ip address and 127.0.0.1. 0.0.0.0 isn’t working because “No private IP address found, and explicit IP not provided”.

Hi,
i want to be sure about this one but could you ping this address from your own computer (i want to make sure that external access is working)

(the inet in eno1)

I am able to ping my real server IP address just fine.

Hi,
sorry for the delay,
would you mind running this command curl ifconfig.me and telling me if the ip resulted from this command is different than this one?

I know that i seem repetitive on this point but i want to be sure about another detail.

Regards

Hi,
i had a feedback from one of our devs that tested on OVH and here’s why there might be an issue with your OVH server:

Simply note that due to the use of Micro and the chosen registry / messaging system (see above), you must have a private local network interface for the system to run. It is usually the case by default on all servers, but on some cheap VPS (typically hosted by OVH) you have to explicitely add a virtual interface

I also encountered the same issue.
cells showed as below:


panic: runtime error: invalid memory address or nil pointer dereference

[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xf8b90a]

goroutine 262 [running]:

github.com/pydio/cells/vendor/github.com/micro/go-web.(*service).Init(0xc424780f00, 0xc424776080, 0x8, 0x8, 0x24, 0x1)

/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/vendor/github.com/micro/go-web/service.go:298 +0x31a

github.com/pydio/cells/common/service.WithWeb.func1.2(0x6cead80, 0xc4247d0600, 0x30ac540, 0xc422198aa0)

/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/service/service-web.go:80 +0x529

github.com/pydio/cells/common/service.(*service).Start(0xc4247d0600)

/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/common/service/service.go:370 +0x1fe

created by github.com/pydio/cells/cmd.glob..func27

/opt/teamcity/agent/work/b7c550f2c973b54c/src/github.com/pydio/cells/cmd/services-start.go:150 +0xa3

System: Debian GNU/Linux 9.6 (stretch)


1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:16:3c:5d:1c:98 brd ff:ff:ff:ff:ff:ff
    inet 192.3.176.179/25 brd 192.3.176.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3cff:fe5d:1c98/64 scope link 
       valid_lft forever preferred_lft forever

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3955         429        2373           5        1152        3289
Swap:          7628           0        7628

$ df -m
Filesystem            1M-blocks  Used Available Use% Mounted on
udev                       1967     0      1967   0% /dev
tmpfs                       396     6       391   2% /run
/dev/sda3                 47661  1435     46227   4% /
tmpfs                      1978     0      1978   0% /dev/shm
tmpfs                         5     0         5   0% /run/lock
tmpfs                      1978     0      1978   0% /sys/fs/cgroup
/dev/mapper/data-var     476604   887    475718   1% /var
/dev/mapper/data-home    953207  1080    952128   1% /home
/dev/mapper/data-srv    1906417  1945   1904473   1% /srv
/dev/sda1                   484    60       425  13% /boot
tmpfs                       396     0       396   0% /run/user/1000

What other infos should I provide?

Hi,
could you tell me the informations that you provided during the installation process,
also is it a vps, selfhosted server or anything else i would like to know the setup.

Hi,

I installed cells on VPS (KVM), and installation process as below.
But database is empty…

$ /usr/local/pydio/cells install

[Configs] Upgrading: setting default config services/pydio.grpc.auth/dex/issuer to /auth/dex

[Configs] successfully saved config after upgrade - Reloading from source

**Welcome to Pydio Cells Home Edition installation**

Pydio Cells Home Edition will be configured to run on this machine. Make sure to prepare the following data

 - IPs and ports for binding the webserver to outside world

 - MySQL 5.6+ (or MariaDB equivalent) server access

Pick your installation mode when you are ready.

✔ Command line (performed in this terminal)

Cannot find vaultKeyPath, creating new one /srv/pydio/.config/pydio/cells/cells-vault-key

**************************************************************

Warning! A keyring is not found on this machine,

  A Master Key has been created for cyphering secrets

It has been stored in /srv/pydio/.config/pydio/cells/cells-vault-key

Please make sure to secure this file and update the configs

with its new location, under the defaults/keyPath key.

***************************************************************

✔ localhost:8080

**✔** **External Host (used to access this machine from outside world if it differs from Bind Host):** https://leafia.org

✔ Disable SSL (not recommended)

**## Database Connection**

✔ Socket

**✔** **Socket File:** /var/run/mysqld/mysqld.sock

**✔** **Database Name:** cells

**✔** **Database User:** pydio

**✔** **Database Password (leave empty if not needed):** ********************************

✔ Successfully connected to the database

**## Frontend Configuration**

**✔** **Admin Login (leave passwords empty if an admin is already created):** mzch

**✔** **Admin Password:** ********************************

**✔** **Confirm Password:** ********************************

**## Advanced Settings**

**✗** **There are some advanced settings for ports and initial data storage. Do you want to edit them:**  

**## Performing Installation**

2019-01-11T11:07:52.273-0500 INFO Starting installation now {"bindUrl": "http://localhost:8080"}

✔ Created main database

✔ Created default datasources

✔ Configuration of gateway services

✔ Creation of logs directory

✔ **Installation Finished: please restart with '/usr/local/pydio/cells start' command**

p.s.
if selecting Browser-based, cells crashed by the same cause, SIGSEGV.

I installed cells on another VPS. It has succeeded in installing and starting. What is the difference about?

Hi,
i don’t have enough knowledge about networking, but it could be related to the VPS not providing you with an interface with a private ip.

We are going to post a blog that will clarify all of this, i know it’s confusing sometimes (even for me).

I added dummy interface with private IP (192.168.0.1), then I can start cells without problem. Why does cells need such a private address? Bug?

I read the source code on Github.com. cells checks whether there is an interface with a private IP or not around 47-49 in extractor.go. As a result, if the machine doesn’t have any private IPs like my VPS, func extractAddress() returns error, and func genSrv() returns nil, but func Init() in service.go does not check a returned value, so it causes Segmentation Fault. This is an obvious bug.

Perhaps, updating micro/go-web to the latest if possible, this bug might be fixed.

I have same problem on:

  • CentOS 7
  • RAM 8gb

Cells version 1.2.5

Pydio Cells Home Edition will be configured to run on this machine. Make sure to prepare the following data

  • IPs and ports for binding the webserver to outside world
  • MySQL 5.6+ (or MariaDB equivalent) server access
    Pick your installation mode when you are ready.

:heavy_check_mark: Browser-based (requires a browser access)
:heavy_check_mark: 172.168.1.21:8080
:heavy_check_mark: External Host (used to access this machine from outside world if it differs from Bind Host): 172.168.1.21:8080
:heavy_check_mark: Disable SSL (not recommended)
About to launch browser install, install URLs:
internal: http://172.168.1.21:8080
external: http://172.168.1.21:8080
2019-01-16T12:37:30.251+0700 INFO Extracted 59 files for a total size of 12438856
2019-01-16T12:37:31.258+0700 INFO pydio.gateway.rest started
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0xf8b90a]

How to add “dummy interface with private IP” on CentOS 7?