Introduction
While working on an Oracle Exadata Cell Server training environment, I encountered the following CellCLI error:
CELL-01519: Cannot talk to the Management Server (MS). Error: ;
nested exception is:
HTTP transport error:
javax.xml.soap.SOAPException:
java.security.PrivilegedActionException:
javax.xml.soap.SOAPException:
Bad response: 404 Not Found
At first glance, this looked like a Management Server connectivity or HTTP configuration problem.
However, further investigation revealed that the real root cause was:
/opt filesystem = 100% full
The Management Server was running as a process, but it could not create required files because the filesystem had no free space.
This article walks through the complete troubleshooting process.
1. Environment
The issue occurred on a simulated/training Exadata Cell Server environment running:
CellCLI Release: 11.2.3.2.1
Operating System: Oracle Linux
Filesystem: ext3
The Cell Server contained simulated raw storage under:
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/disks/raw/
The CellCLI components involved were:
RS Restart Server
MS Management Server
CELLSRV Cell Server
2. Initial Symptom
When executing:
LIST CELLDISK;
CellCLI returned:
CELL-01519: Cannot talk to the Management Server (MS).
Error:
HTTP transport error:
javax.xml.soap.SOAPException:
java.security.PrivilegedActionException:
javax.xml.soap.SOAPException:
Bad response: 404 Not Found
The same problem occurred with:
LIST PHYSICALDISK;
and other CellCLI commands.
3. First assumption: Management Server is down
The first thing to check is whether the Cell Server services are running.
Use:
service celld status
Depending on the environment, you may also use:
/etc/init.d/celld status
The result showed:
rsStatus: running
msStatus: running
cellsrvStatus: running
This was important.
It meant:
RS → Running
MS → Running
CELLSRV → Running
So simply saying "MS is down" would have been incorrect.
4. Check the MS process
The Management Server in this older environment runs through Java/OC4J.
Check the process:
ps -ef | grep '[m]s'
We found the Java process associated with:
oc4j.jar
This confirmed that an MS process existed.
However:
A running process does not necessarily mean that the application is healthy.
This became important later.
5. Check listening ports
Next, inspect the listening ports:
ss -lntp
If ss is unavailable:
netstat -lntp
The Java MS process was listening on local ports including:
127.0.0.1:23943
127.0.0.1:23791
127.0.0.1:8888
CELLSRV was also listening on its storage service port.
This indicated that the Java process itself was alive.
6. Test the HTTP endpoint
To determine whether the Java HTTP server was responding:
curl -v http://127.0.0.1:8888/
The HTTP server responded successfully.
This gave us another important clue:
Network/HTTP listener
↓
Alive
But:
CellCLI → MS application
↓
404
Therefore, the problem wasn't simply that the Java HTTP listener was unavailable.
7. Check the Management Server logs
This was the turning point.
In this environment, the MS Java process showed its log locations under:
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/
Important files included:
ms.lst
ms.err
Check the error log:
tail -100 \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
For a larger investigation:
less \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
Search specifically for errors:
grep -i "error" \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
Also search for filesystem-related messages:
grep -iE "no space|disk|filesystem|write|IOException" \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
8. The actual error in the MS log
The MS log showed:
java.io.IOException: No space left on device
It also showed that the application was unable to create deployment-related directories/files.
For example, the application was attempting to create directories under:
.../application-deployments/ms/ms/
but the operation failed with:
No space left on device
This completely changed the direction of the investigation.
The 404 Not Found was a symptom.
The underlying problem was:
Filesystem full
9. Check filesystem utilization
The first Linux command to run when you see:
No space left on device
is:
df -h
In our case:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 43G 43G 0 100% /opt
This immediately confirmed:
/opt = 100% full
10. Check inode utilization too
A common mistake is to assume that every No space left on device error means disk capacity is exhausted.
It can also mean inode exhaustion.
Check:
df -i
Our result was approximately:
/opt
IUse% = 1%
Therefore:
Disk blocks → FULL
Inodes → NOT FULL
So the issue was definitely storage capacity, not inode exhaustion.
General rule
When you see:
No space left on device
always check both:
df -h
df -i
11. Find what is consuming the filesystem
Next, identify the largest directories.
On older Linux systems, du and sort may not support modern options such as:
sort -h
So use numeric sorting:
du -x -k /opt 2>/dev/null | sort -n | tail -30
Or, if supported:
du -x -k -d 1 /opt 2>/dev/null | sort -n
The investigation showed:
/opt/oracle/.../disks/raw
≈ 43.6 GB
while:
/opt
≈ 44.5 GB
This was the key finding.
12. Inspect the raw storage files
We then investigated:
du -x -k \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/disks/raw/* \
2>/dev/null | sort -n
The result showed:
DISK01 ~5 GB
DISK02 ~5 GB
DISK03 ~5 GB
DISK04 ~5 GB
DISK05 ~5 GB
DISK06 ~11.5 GB
DISK07 ~1 GB
FLASH01 ~1 GB
FLASH02 ~1 GB
FLASH03 ~1 GB
FLASH04 ~1 GB
These were not temporary files.
They are the backing files representing the simulated Cell Server storage.
Therefore:
Do not delete these files to recover space.
For example, deleting:
rm DISK06
would effectively destroy simulated Cell Server storage.
13. Check for deleted files still consuming space
Another important Linux troubleshooting technique is:
lsof +L1
This identifies files that have been deleted from the filesystem but are still held open by a process.
In our environment, Java had references to deleted files such as:
MBeanServerEjb.ser
MBeanServerUserEjb.ser
However, their size was:
0 bytes
Therefore, they were not responsible for the 43 GB filesystem exhaustion.
General troubleshooting principle
If:
df -h
says a filesystem is full but:
du
doesn't account for the usage, check:
lsof +L1
because deleted-but-open files can cause exactly that situation.
14. Check the partition layout
We then checked:
fdisk -l /dev/sda
The VM had:
/dev/sda1 /boot
/dev/sda2 /opt
/dev/sda3 /
/dev/sda5 swap
Specifically:
/dev/sda2 → /opt → ~43 GB
/dev/sda3 → / → ~19 GB
And /opt was:
100% full
while / still had approximately:
15 GB free
15. Check /etc/fstab
The mount configuration was:
cat /etc/fstab
It showed:
LABEL=/ / ext3
LABEL=/opt /opt ext3
LABEL=/boot /boot ext3
Therefore /opt was a separate filesystem.
This is important:
/ → /dev/sda3 → 15 GB free
/opt → /dev/sda2 → 0 GB free
Free space on / cannot automatically be used by /opt.
16. Check whether LVM is involved
Run:
which lvm
In our case, lvm existed as a command, but that does not mean /opt is using LVM.
The actual mount was:
/dev/sda2 → /opt
not:
/dev/mapper/...
So this was a traditional partition/filesystem configuration.
17. Root cause
The final root-cause chain was:
Simulated Cell Server
│
▼
Raw disk files stored under /opt
│
▼
/opt filesystem reaches 100%
│
▼
MS tries to create/write files
│
▼
java.io.IOException:
No space left on device
│
▼
MS application cannot initialize/deploy correctly
│
▼
CellCLI cannot communicate with MS
│
▼
CELL-01519
HTTP 404 Not Found
So:
Primary root cause
/opt filesystem was 100% full.
Secondary symptom
CellCLI returned CELL-01519 / HTTP 404 because MS could not operate correctly.
18. Solution
The appropriate solution for this training environment is:
Increase the
/optfilesystem capacity.
Because /opt contains the simulated Cell Server raw storage, deleting the disk files is not an acceptable solution.
The VM administrator/lab provider should increase the storage allocated to /opt, or provide additional storage and redesign the filesystem allocation.
In this particular VM, /opt was:
/dev/sda2
43 GB
ext3
and the partition was already immediately followed by /dev/sda3.
Therefore, do not blindly run resize2fs /dev/sda2.
The filesystem cannot be enlarged beyond the partition boundary unless the underlying partition is first enlarged.
19. What NOT to do
When troubleshooting this type of issue, avoid these dangerous shortcuts.
Don't delete raw disk files
rm /opt/oracle/.../disks/raw/DISK01
Those files represent simulated storage.
Don't blindly resize the filesystem
resize2fs /dev/sda2
A filesystem cannot magically grow beyond its partition.
Don't modify partitions blindly
fdisk /dev/sda
Deleting/recreating the wrong partition can destroy /opt or /.
Don't restart services blindly
service celld restart
A restart won't fix a filesystem that is still 100% full.
First fix the underlying storage problem.
20. After increasing /opt
Once sufficient space has been added:
Verify filesystem
df -h /opt
You should see something like:
Filesystem Size Used Avail Use%
/dev/sda2 XXG XXG XXG XX%
Also verify inodes:
df -i /opt
Check MS logs again
tail -100 \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
Search:
grep -iE "error|exception|no space" \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
You want to confirm that new No space left on device errors are no longer occurring.
Check Cell services
service celld status
Expected:
rsStatus: running
msStatus: running
cellsrvStatus: running
Test CellCLI
cellcli
Then:
LIST PHYSICALDISK;
LIST CELLDISK;
LIST GRIDDISK;
If these work, the MS communication problem is resolved.
21. Useful troubleshooting command cheat sheet
Check filesystem capacity
df -h
Check inode usage
df -i
Check filesystem type
df -Th /opt
Check mount configuration
cat /etc/fstab
Check partition layout
fdisk -l /dev/sda
Find large directories
du -x -k /opt 2>/dev/null | sort -n | tail -30
Find large files
find /opt -xdev -type f -size +100M \
-exec ls -lh {} \; 2>/dev/null | sort -k5
Don't use sort -h if the installed sort doesn't support it.
Find deleted files still consuming space
lsof +L1
Check Cell services
service celld status
Check MS process
ps -ef | grep '[m]s'
Check CELLSRV process
ps -ef | grep '[c]ellsrv'
Check RS process
ps -ef | grep '[r]s'
Check listening ports
ss -lntp
or:
netstat -lntp
Check MS error log
tail -100 \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.err
Check MS normal log
tail -100 \
/opt/oracle/cell11.2.3.2.1_LINUX.X64_130109/cellsrv/deploy/log/ms.lst
22. Exadata DBA troubleshooting methodology
The biggest lesson from this incident isn't the individual command.
It's the order of investigation.
When CellCLI reports:
CELL-01519
Cannot talk to Management Server
don't immediately restart MS.
Use this sequence:
1. Check CellCLI error
↓
2. Check celld status
↓
3. Check MS process
↓
4. Check MS ports
↓
5. Check MS logs
↓
6. Check df -h
↓
7. Check df -i
↓
8. Find filesystem consumers
↓
9. Identify root cause
↓
10. Fix underlying problem
↓
11. Restart/recover service if necessary
↓
12. Validate CellCLI
This is far better than:
Error → Restart everything → Hope
23. Final takeaway
The most important distinction is:
CELL-01519
↓
NOT necessarily an MS-down problem
It can be:
MS process running
+
MS unable to perform its work
In our case:
MS process → RUNNING
CELLSRV → RUNNING
RS → RUNNING
HTTP listener → RESPONDING
Filesystem `/opt` → 100% FULL
MS write operation → FAILED
Therefore:
A process being
runningdoes not prove that the service is healthy. Always check the service logs and the underlying OS resources.
Comments
Post a Comment