Null value in column "name" violates not-null constraintDETAIL: Failing row contains (1, null, null, 0, single, 2017-05-18 23:21:37.015421 00, null, null, root)

[Please complete the below template with details of the problem reported on your Web-UI. Be as detailed as possible. Community members, including developers, shall try and help. Thanks for your time in reporting this issue! We recommend purchasing commercial support for expedited support directly from the developers.]

Brief description of the problem

Attempting to get an instance running in Amazon EC2, (needed to follow a modified version of Rockstor on vanilla CentOS 7?)

Detailed step by step instructions to reproduce the problem

I have gotten as far as initrock, but when I enter the initial values for hostname/admin login/password page, an error message appears.
However, on refresh, you are able to “log in” anyway, so I was able to upgrade to the latest version. rockstor-pre.service was unable to start on reboot, so i removed the .initrock file and re-ran initrock. After starting rockstor.service again I am able to enter the same (well similar, the admin name i chose before is now taken) and receive the error message in this post.
I can then refresh again and see the dashboard, but no disks appear.

Web-UI screenshot

Error Traceback provided on the Web-UI

Traceback (most recent call last):

File
“/opt/rockstor/src/rockstor/rest_framework_custom/generic_view.py”,
line 41, in _handle_exception

yield

File
“/opt/rockstor/src/rockstor/storageadmin/views/disk.py”, line 320, in
post

return

self._update_disk_state()

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/utils/decorators.py”,
line 145, in inner

return func(*args,

**kwargs)

File “/opt/rockstor/src/rockstor/storageadmin/views/disk.py”,
line 258, in _update_disk_state

p.save()

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/base.py”,
line 734, in save

force_update=force_update,

update_fields=update_fields)

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/base.py”,
line 762, in save_base

updated = self._save_table(raw, cls,

force_insert, force_update, using, update_fields)

File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/base.py”,
line 846, in _save_table

result =

self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/base.py”,
line 885, in _do_insert

using=using, raw=raw)

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/manager.py”,
line 127, in manager_method

return getattr(self.get_queryset(),

name)(*args, **kwargs)

File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/query.py”,
line 920, in _insert

return

query.get_compiler(using=using).execute_sql(return_id)

File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/sql/compiler.py”,
line 974, in execute_sql

cursor.execute(sql,

params)

File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/utils.py”,
line 64, in execute

return self.cursor.execute(sql,

params)

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/utils.py”, line
98, in exit

six.reraise(dj_exc_type,

dj_exc_value, traceback)

File
“/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/utils.py”,
line 64, in execute

return self.cursor.execute(sql,

params)

IntegrityError: null value in column “name” violates not-null
constraint

DETAIL: Failing row contains (1, null,
null, 0, single, 2017-05-18 23:21:37.015421+00, null, null, root).

Note that these are the work-in-progress steps I’ve taken based on information I see on a local VM running Rockstor. FWIW, the Rockstor AMI is no longer there, and there are restrictions as to what Amazon thinks the OS actually is so you can’t just import the vmdk. It expects a specific version of CentOS with a specific kernel, though as you can see below you can update the vanilla CentOS image up there to use Rockstor repos, btrfs, and a 4.x kernel.

Launch a new instance of CentOS 7 in size t2.micro (You can change it to e.g. m4.large
later, but why pay that price now while you’re building the instance?)

Change the root mount point in /etc/fstab to /dev/xvda1

modify /etc/grub2.cfg to use /dev/xvda1 instead of the UUID for the root filesystem

add the centos user to /etc/ssh/sshd_config so we can log in after rockstor is installed
echo -e “\nAllowUsers centos” >> /etc/ssh/sshd_config

Then add the Rockstor repo and perform the installation
cat < /etc/yum.repos.d/Rockstor-Base.repo
#RockStor repos
[rockstor]
name=Rockstor 3 - x86_64
baseurl=http://rockstor.com/rockrepo/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rockstor
metadata_expire=1m
EOF

cat < /etc/pki/rpm-gpg/RPM-GPG-KEY-Rockstor
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFYewywBCADRC3prGgOcYyNKGvMvAAGMEECSqhWahZvkxJ+QmJWSnbrOiwM5
htKVTUnRH41OmIuwQppDDzNUygH9Ls8MlOZNfQ/pdz07zF0Li+U9DqYqEZWDbDWB
P2lOoI8xVSnAk+fa+jO19YDyUy5H+2lQmEX8WelKvXml8d+0t+QjjyBwigj8lft9
oLHd2WNqfS2sHx7ddkeGvLv9N03p8g6rcVjCZqtrJh7BDE7w6EoAFUbuab+GEeKE
Tru39wWc2WYspgzCqcDs4Ru4p63ecmowZILTb2nY0xwnP4+a/6lY2OrweNLsH486
/CbxzriQ9qDeQrm+E+MZS41q1yt9t61dqRX1ABEBAAG0Q1N1bWFuIENoYWtyYXZh
cnR1bGEgKFJvY2tzdG9yIFJQTSBkZXZlbG9wbWVudCkgPHN1bWFuQHJvY2tzdG9y
LmNvbT6JAT4EEwECACgFAlYewywCGwMFCQlmAYAGCwkIBwMCBhUIAgkKCwQWAgMB
Ah4BAheAAAoJEAMrdk0IeVsJHHMH/jKxiLEcLE1pXCwf/BASoo7ToDFrFkbEq/hz
jmUY5ukh6WRHhrSh25DAbmxT4OmHzME4w44fi7YQiT0+Fe9DMnxgCfGcxxztAVHk
YcFu0w+2+Mpkbec3rXi/OvRz3VUHQl4OEH5MwcvlpJ77/Pja5L5R3N7TpmJfYsPS
14/koPKKNcNZM6Q4fm52L4KZGECdwzkFV9HvXKMyibp1jbxXsZ0Rgsu6E5aZ8Mer
lC1v42IcQ55Ns0cEUWAUQ2UnMH8SK2OGiV3qPAOmls18mO/Yov9+AOPTW/6FCQGm
E//dOyQzZwOlfGTo10EZ24HPUHTwFfw7ws3AuHnUYJ/qfb1q7265AQ0EVh7DLAEI
AMyJObLpDIZeztZ8S5jTbrMMdOEgHBYB7/GhZV5H6gSt6qD83FJjQN2VVvBNM6BA
j1sZJqSGz4qev/o4HfXndcgQxwou5Y50Z2wqae9fV0VVWnFMmd8EycbBiKJ9QsC0
75c4t2UhXG5yO9brM2jnh6moNMQLOsSasYO703alJo4Eh1DDWDKnXEXRyLjDfWF8
OfqUsfomveBc7kbgkMh7ONr9YsjyV6u0JonegjikaLnBVE/+JKTpMsmIPEzfvAdR
FGvBH+rU3MsTmUuwsmt7QzvELRjj6/X0geQXrfM8FYvipRfzOHz2MV778YWyBgQA
DQpMRv33yfu5uJ6JZaVM+nkAEQEAAYkBJQQYAQIADwUCVh7DLAIbDAUJCWYBgAAK
CRADK3ZNCHlbCcEMB/4xbk9+ySt20Ab24s9csKNsS3tWSPNv4atxC9E3lsZoO/LQ
EBc+GNjp09TDK9hoxE9LCQ/yeGKbroArKOiigp4nPPu+zP6FawJDhl5tvBH/zlpG
M01L6z1gIU/Tu3MVtaVtCZwlB3jDomqcVqz8zV3Q4u75mfdMg9ogZNWI0TOmU7zm
KaSCr1f2BwXcl5rq+QIGh4W16L5vBO+UbxjkAsc4QotUt9g9WlEdO0dkec3S+Qzk
P4J8HYW3+4I3iIH63gQn1fzgMZzT5hribqd9cas/WkUHRxE1M4YNgF89quYK7ul0
H2/vbmi8kO0X9rrqNnolzE2ikP3Bgr1lOFNL7kBl
=YgLO
-----END PGP PUBLIC KEY BLOCK-----
EOF

yum -y install epel-release
yum clean all
yum -y install NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
yum -y install rockstor

Stop the instance
Create a snapshot of the disk and name it rockstor-xfs
Create a volume from the snapshot and name it rockstor-xfs
Create a new volume and name it rockstor /
Attach the rockstor-xfs volume to the instance as /dev/sdg
Attach the rockstor / volume to the instance as /dev/sdh
Start the instance

Sudo to root and stop rockstor
systemctl stop rockstor

Create a partition on the new rockstor / volume (/dev/xvdh)
[root@ip-172-31-11-4 ~]# fdisk /dev/xvdh
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4b3d0be3.

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-16777215, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215
Partition 1 of type Linux and of size 8 GiB is set

Command (m for help): a
Selected partition 1

Command (m for help): p

Disk /dev/xvdh: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4b3d0be3

Device Boot      Start         End      Blocks  Id  System

/dev/xvdh1 * 2048 16777215 8387584 83 Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@ip-172-31-11-4 ~]# mkfs.btrfs /dev/xvdh1
btrfs-progs v4.4.1
See http://btrfs.wiki.kernel.org for more information.

Detected a SSD, turning off metadata duplication. Mkfs with -m dup if you want to force metadata duplication.
Label: (null)
UUID: 43b52eba-d9c6-4aa0-a4af-026d720bd2d9
Node size: 16384
Sector size: 4096
Filesystem size: 8.00GiB
Block group profiles:
Data: single 8.00MiB
Metadata: single 8.00MiB
System: single 4.00MiB
SSD detected: yes
Incompat features: extref, skinny-metadata
Number of devices: 1
Devices:
ID SIZE PATH
1 8.00GiB /dev/xvdh1
[root@ip-172-31-11-4 ~]# btrfs filesystem label / rockstor_rockstor

Change the UUID on the rockstor-xfs filesystem so we can mount it.
[root@ip-172-31-11-4 ~]# xfs_admin -U generate /dev/xvdg1
Clearing log and setting UUID
writing all SBs
new UUID = 174e006c-290c-4b08-9bfc-38ea6e7a2318

Mount the filesystems:
mount /dev/xvdg1 /mnt/root-xfs/
mount /dev/xvdh1 /mnt/root-btrfs/

And rsync everything over:
rsync -aAXv --exclude={"/mnt/root-xfs/lost+found"} /mnt/root-xfs/ /mnt/root-btrfs/

Then chroot into the new volume:
mount --bind /dev /mnt/root-btrfs/dev
mount --bind /sys /mnt/root-btrfs/sys
mount --bind /proc /mnt/root-btrfs/proc
chroot /mnt/root-btrfs/ /bin/bash

Set the UUIDs as variables for easy replacement
XFS_UUID=$(xfs_admin -u /dev/xvda1 | awk ‘{print $3}’)
BTRFS_UUID=$(btrfs filesystem show /dev/xvdf1 | awk ‘/uuid:/ {print $4}’)

Make sure we change the fstype in /etc/fstab:
sed -i -e ‘s/([ \t])xfs([ \t])/\1btrfs\2/g’ -e ‘s/’$XFS_UUID’/’$BTRFS_UUID’/g’ /etc/fstab

Make sure grub is set to boot to the 4.x kernel, in my case, the first entry (0):
[root@ip-172-31-11-4 ~]# awk -F’ ‘$1=="menuentry " {print $2}’ /etc/grub2.cfg
CentOS Linux (4.8.7-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.16.1.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-8bd05758fdfc1903174c9fcaf82b71ca) 7 (Core)

Since mine is the first entry, set to 0 (1 for second, 2 for third…)
[root@ip-172-31-11-4 ~]# grub2-set-default 0
[root@ip-172-31-11-4 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file …
Found linux image: /boot/vmlinuz-4.8.7-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.8.7-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.16.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.16.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca
Found initrd image: /boot/initramfs-0-rescue-8bd05758fdfc1903174c9fcaf82b71ca.img
done

And finally install grub
[root@ip-172-31-11-4/]# grub2-install /dev/xvdf
Installing for i386-pc platform.
Installation finished. No error reported.
[root@ip-172-31-11-4/]# exit
exit

Shut down the instance and detach all volumes, reattaching rockstor / to /dev/sda1
Also create a new EBS volume for your data disk and attach it to the instance.

Start your instance and log into https://<your.instance.ip.address>

@crimsonbytes Welcome to the Rockstor community forum and nice work/reporting.

Hopefully I can chip in a little on this one maybe:

Rockstor assesses it’s drive complement by way of lsblk (mostly) with a little help from some assorted udev commands.
The first to see what might of happened here, the ‘null’ name bit, is the following command:

lsblk -P -o NAME,MODEL,SERIAL,SIZE,TRAN,VENDOR,HCTL,TYPE,FSTYPE,LABEL,UUID

If you could paste the output of that command here on the problem instance it may be apparent what is leading to a null name that is then throwing the Rockstor disk scan. Also if you could pressed and follow the past with ``` (on an otherwise clear line) then the pasted output text will be easier to read on the forum.

Cheers.