Results 1 to 3 of 3

Thread: EXPLANATION: Process being freed while holding dataserver semaphore.

  1. #1
    Frank Garcia Guest

    EXPLANATION: Process being freed while holding dataserver semaphore.

    OK.
    I received an explanation on this WARNING from a very reliable and trusted source.
    See how you can utilize this response to continue researching this warning message, however I have stopped because:

    1. We are moving to SQL 7.0 very soon.
    2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.

    OK here it goes...

    [SQL Server keeps track of locks and activities by storing the connection
    specific information within a structure -- This structure is called PSS
    Structure.]

    Dataserver semaphores are used by the SQL engine to control access and
    concurrency to SQL Server's data. They limit the maximum amount of
    concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]

    When you get an AV (and that is the most common cause for the warning you
    are seeing), SQL Server traps the exception and invokes a cleanup task. This
    task tries to free all the resources held by the session (= connection)
    which caused the exception. The information about what and how many
    resources your session is (was) holding is stored in its PSS structure.

    In case the SQL engine is not able to release all the dataserver semaphores
    (or locks, which are one particular kind of resource tracked in the PSS
    structure) it will write the warning you are seeing into the error log.

    As mentioned before, the most common reasons for this to happen are
    exceptions like an access violation because this is the most common reason
    for the cleanup task to be invoked. But you might get this warning in other
    cases as also whenever the cleanup task experiences difficulties to release
    the resources for a specific session.

    [Reasons for those difficulties are usually unexpected behavior causing
    resource allocations to interfere with each other. Also memory corruption
    may lead to such warnings. If, for example, the PSS structure gets
    corrupted, its containing dataserver semaphore references might be damaged
    and make no further sense to the operating system. In such case an API call
    for their release would return an error and the SQL engine could not
    guarantee that the semaphore has either been released correctly or its
    reference was a result of the corruption and therefore a semaphore never
    existed to begin with. Since it actually does not disturb the continuation
    of SQL Server a warning is all you get. You might end up with orphaned
    resources which will not be recovered till you cycle the service.]

    Hope this is helpful.

  2. #2
    Gregory Guest

    EXPLANATION: Process being freed while holding dataserver semaphore. (reply)

    thank you.


    ------------
    Frank Garcia at 3/12/99 9:49:18 AM

    OK.
    I received an explanation on this WARNING from a very reliable and trusted source.
    See how you can utilize this response to continue researching this warning message, however I have stopped because:

    1. We are moving to SQL 7.0 very soon.
    2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.

    OK here it goes...

    [SQL Server keeps track of locks and activities by storing the connection
    specific information within a structure -- This structure is called PSS
    Structure.]

    Dataserver semaphores are used by the SQL engine to control access and
    concurrency to SQL Server's data. They limit the maximum amount of
    concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]

    When you get an AV (and that is the most common cause for the warning you
    are seeing), SQL Server traps the exception and invokes a cleanup task. This
    task tries to free all the resources held by the session (= connection)
    which caused the exception. The information about what and how many
    resources your session is (was) holding is stored in its PSS structure.

    In case the SQL engine is not able to release all the dataserver semaphores
    (or locks, which are one particular kind of resource tracked in the PSS
    structure) it will write the warning you are seeing into the error log.

    As mentioned before, the most common reasons for this to happen are
    exceptions like an access violation because this is the most common reason
    for the cleanup task to be invoked. But you might get this warning in other
    cases as also whenever the cleanup task experiences difficulties to release
    the resources for a specific session.

    [Reasons for those difficulties are usually unexpected behavior causing
    resource allocations to interfere with each other. Also memory corruption
    may lead to such warnings. If, for example, the PSS structure gets
    corrupted, its containing dataserver semaphore references might be damaged
    and make no further sense to the operating system. In such case an API call
    for their release would return an error and the SQL engine could not
    guarantee that the semaphore has either been released correctly or its
    reference was a result of the corruption and therefore a semaphore never
    existed to begin with. Since it actually does not disturb the continuation
    of SQL Server a warning is all you get. You might end up with orphaned
    resources which will not be recovered till you cycle the service.]

    Hope this is helpful.

  3. #3
    Frank Garcia Guest

    ADDITION: Process being freed while holding dataserver semaphore. (reply)

    There are known issues with NT SP4 and applications written in C. SQL Server 6.5 is written in C.

    Hope this helps.

    ------------
    Gregory at 3/12/99 10:35:11 AM

    thank you.


    ------------
    Frank Garcia at 3/12/99 9:49:18 AM

    OK.
    I received an explanation on this WARNING from a very reliable and trusted source.
    See how you can utilize this response to continue researching this warning message, however I have stopped because:

    1. We are moving to SQL 7.0 very soon.
    2. It is not a critical warning according to this source. However there could always be an exception and thus reason to continue researching this warning.

    OK here it goes...

    [SQL Server keeps track of locks and activities by storing the connection
    specific information within a structure -- This structure is called PSS
    Structure.]

    Dataserver semaphores are used by the SQL engine to control access and
    concurrency to SQL Server's data. They limit the maximum amount of
    concurrent access to a particular piece of information. [Bottom line, think of it as if it were a lock.]

    When you get an AV (and that is the most common cause for the warning you
    are seeing), SQL Server traps the exception and invokes a cleanup task. This
    task tries to free all the resources held by the session (= connection)
    which caused the exception. The information about what and how many
    resources your session is (was) holding is stored in its PSS structure.

    In case the SQL engine is not able to release all the dataserver semaphores
    (or locks, which are one particular kind of resource tracked in the PSS
    structure) it will write the warning you are seeing into the error log.

    As mentioned before, the most common reasons for this to happen are
    exceptions like an access violation because this is the most common reason
    for the cleanup task to be invoked. But you might get this warning in other
    cases as also whenever the cleanup task experiences difficulties to release
    the resources for a specific session.

    [Reasons for those difficulties are usually unexpected behavior causing
    resource allocations to interfere with each other. Also memory corruption
    may lead to such warnings. If, for example, the PSS structure gets
    corrupted, its containing dataserver semaphore references might be damaged
    and make no further sense to the operating system. In such case an API call
    for their release would return an error and the SQL engine could not
    guarantee that the semaphore has either been released correctly or its
    reference was a result of the corruption and therefore a semaphore never
    existed to begin with. Since it actually does not disturb the continuation
    of SQL Server a warning is all you get. You might end up with orphaned
    resources which will not be recovered till you cycle the service.]

    Hope this is helpful.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •