Applicable to:
- Plesk
Symptoms
Opening domains tab in Domains > example.com or Domain > example.com > Hosting Settings results in the following error:
PLESK_ERROR: Internal error: Unable to find service node for web service on domain with id=23
Cause
Database inconsistency.
Resolution
Connect to the server via SSH/RPD and resolve the inconsistency:
-
Find all missing
ipCollectionId
records inIpAddressesCollections
table:MYSQL_WIN: mysql> SELECT dom_id,ipCollectionId FROM DomainServices where ipCollectionId not in (select ipCollectionId from IpAddressesCollections) and type='web';
+--------+----------------+
| dom_id | ipCollectionId |
+--------+----------------+
| 23 | 80 |
+--------+----------------+
1 row in set (0.00 sec) -
Using domain ID (
dom_id
) value, find what IP address should be assigned to this domain:MYSQL_WIN: mysql> select ip_address_id,type from ip_pool where id=(select pool_id from clients where id=(select cl_id from domains where id=23));
+---------------+-----------+
| ip_address_id | type |
+---------------+-----------+
| 5 | shared |
+---------------+-----------+
1 row in set (0.00 sec) -
Make sure that this IP address exists:
MYSQL_WIN: mysql> select id,ip_address from IP_Addresses where id=5;
+----+-----------------+
| id | ip_address |
+----+-----------------+
| 5 | 123.123.123.123 |
+----+-----------------+
1 row in set (0.00 sec) -
Insert missing value in the
IpAddressesCollections
table:MYSQL_WIN: mysql> insert into IpAddressesCollections (ipCollectionId, ipAddressId) values ('80','5');
- Create
psa
database backup -
Find what ip_address_id is assigned to a domain name with id=23:
MYSQL_WIN: mysql> SELECT `param`, `val` FROM dom_param WHERE dom_id = 23;
+---------------------+--------------------------------------+
| param | val |
+---------------------+--------------------------------------+
| ip_addr_id | 2 |
+---------------------+--------------------------------------+MYSQL_WIN: mysql> SELECT ip_address_id FROM ip_pool WHERE id=(SELECT pool_id FROM clients WHERE id=(SELECT cl_id FROM domains WHERE id=23));
+---------------+
| ip_address_id |
+---------------+
| 1 |
| 2 |
+---------------+ -
Check if the IPs with ip_address_id 1 and 2 exist:
MYSQL_WIN: mysql> SELECT id,ip_address FROM IP_Addresses WHERE id=1;
+----+-----------------+
| id | ip_address |
+----+-----------------+
| 1 | 123.123.123.123 |
+----+-----------------+
1 row in set (0.00 sec)
mysql> SELECT id,ip_address FROM IP_Addresses WHERE id=2;
Empty set (0.00 sec) -
Update the ID for the IP_Addresses table:
MYSQL_WIN: mysql> UPDATE IP_Addresses SET id=2 WHERE ip_address='123.123.123.123';
-
Check if the domain is accessible in Plesk now. The following error may appear:
Error: Unable to find service node for ip address with id=1
Follow the next step.
-
Check what ID does ip_address_id=2 have in the in ip_pool table:
MYSQL_WIN: mysql> SELECT * FROM ip_pool;
+----+---------------+-----------+
| id | ip_address_id | type |
+----+---------------+-----------+
| 1 | 1 | exclusive |
| 1 | 2 | exclusive |
+----+---------------+-----------+
2 rows in set (0.00 sec) -
ip_address_id=2 should have a unique id=1. Update the ip_pool table:
MYSQL_WIN: mysql> UPDATE ip_pool SET id=2 WHERE ip_address_id=1;
Comments
0 comments
Please sign in to leave a comment.