OpenSLP does not refresh registration for services with SLP_LIFETIME_MAXIMUM time-to-live value

  • 7001793
  • 05-Nov-2008
  • 27-Apr-2012

Environment

Novell Open Enterprise Server 2 (OES 2) for x86_64

Situation

Purpose: If an SLP service is registered with the maximum time-to-live (65535 seconds), the SLP Service Agent is responsible for refreshing the registration before the time-to-live expires.

Because of a bug, on the 64bit version of OES2 server the SLP SA don`t do this registration refresh for services with the maximum time-to-live value, when the time-to-live value expired. This means that every SLP service that is registered with this value are never re-registered.


Symptoms: One of the services that is using this time-to-live value is the novell-smdr daemon. The problem that can be seen regarding this bug is that a backup software is not able to find a particular volume, as it is not available anymore through SLP advertisement.


This is a bug in the OpenSLP package, that comes from the SLES10 SP1 installation.
Packages that are involved:
openslp-1.2.0-22.14.x86_64.rpm
openslp-32bit-1.2.0-22.14.x86_64.rpm
openslp-server-1.2.0-22.14.x86_64.rpm

Resolution

Corrective Steps: Upgrade the OpenSLP packages from the SLES10 SP2 branch. There is no dependencies on these packages, so we can install them without any problem.
The packages to be installed:
openslp-1.2.0-22.21.x86_64.rpm
openslp-32bit-1.2.0-22.21.x86_64.rpm
openslp-server-1.2.0-22.21.x86_64.rpm

Command to use:
rpm - Uvh openslp-1.2.0-22.21.x86_64.rpm
rpm - Uvh openslp-32bit-1.2.0-22.21.x86_64.rpm
rpm - Uvh openslp-server-1.2.0-22.21.x86_64.rpm

Status

Reported to Engineering

Additional Information

A good tool to test an SLP service existence is called `slptool`. An example of the usage:

slptool findsrvs service:smdr.novell

This will give back a list from the SLP DA about the available smdr.novell services, something like:

service:smdr.novell://172.16.24.128:413/OES2,65535

where:
- 172.16.24.128 is the IP address of the server
- 413 is the port that is advertised for smdr. Actualy this isn`t used; the real port is 40193
- OES2 is the hostname of the server
- 65535 is the time to live value for this SLP service