DPM 2007: Tapes are labeled as “Unrecognized” after just previously writing to them and removing them from the library
Published Feb 15 2019 03:14 AM 1,181 Views
First published on TECHNET on Jun 07, 2010

Here's an interesting issue I worked on the other day and since I didn't see it documented anywhere I thought it would be worth a mention here just in case someone else runs across it:

=====

The issue we were running into was one where tapes are labeled as “Unrecognized” after just previously writing to them and removing them from the library in System Center Data Protection Manager 2007.

To figure out why this was happening we gathered a trace of the problem and found that we were failing on the following code:

arrLabelTokens[6].GetLong((LONG*)&m_tapeHeaderInfo.m_mediaLabel.m_usSide)

The returned error code was 0x80070057 which means “ERROR_INVALID_PARAMETER” or “The parameter is incorrect.”

In this section of the code we are parsing the tape header and in this example the tape header was the following:

[MTF Media Label|1.0|Microsoft|2.0.8861.0|2010/03/19.21:04:11|Files Servers| Domain Controllers-LT-1Weeks-Copy0-00000125|0|{c5dd3d54-d495-4139-9212-e9fb72e2cf27}|{42bb9f73-f162-429b-93d3-e4a1fd257c7a}|]

Let’s break it down so it is easier to read:

Element 0 = MTF Media Label

Element 1 = 1.0

Element 2 = Microsoft

Element 3 = 2.0.8861.0

Element 4 = 2010/03/19.21:04:11

Element 5 = File Servers

Element 6 = Domain Controllers-LT-1Weeks-Copy0-00000125

Element 7 = 0

Element 8 = {c5dd3d54-d495-4139-9212-e9fb72e2cf27}

Element 9 = {42bb9f73-f162-429b-93d3-e4a1fd257c7a}

To break the code down a little further, we see that arrLabelTokens is grabbing the 6 th element of the header ( arrLabelTokens[6]) . It is expecting it to be a number ( GetLong((LONG*) ).

The 6 th element of the header, which is delimited by the “|” character would have been:

Domain Controllers-LT-1Weeks-Copy0-00000125

That isn’t a number so this is why we are getting “invalid parameter” as a returned error. If you look closely, you also notice that there is a space at the beginning of the 6 th element.

It was discovered that the name of the protection group that had this particular data source within it contained a “|” character. If the particular tape we are using doesn’t contain a header, then we use the protection group name in a portion of the header when we create it for the first time. In our example above it is actually element 5 that contains the protection group name. Since we are using the “|” character as the delimiter to parse the header, we will fail every single time if the protection group name contains a “|” character as well. Had the protection group not contained the “|” character we would have parsed it as follows:

Element 0 = MTF Media Label

Element 1 = 1.0

Element 2 = Microsoft

Element 3 = 2.0.8861.0

Element 4 = 2010/03/19.21:04:11

Element 5 = File Servers Domain Controllers-LT-1Weeks-Copy0-00000125

Element 6 = 0

Element 7 = {c5dd3d54-d495-4139-9212-e9fb72e2cf27}

Element 8 = {42bb9f73-f162-429b-93d3-e4a1fd257c7a}

Element 6 is a number!

Final Thoughts

So the bottom line here is that if you see this issue, check the name of the protection group and make sure it doesn't contain any special characters.  To go even further, as a general rule of thumb it isn’t a good idea to ever use any special characters in your protection group names. This would include special characters such as the ampersand (&), percent (%), greater than (>), less than (<), and the period (.), comma (,) and the semicolon (;).

Note: This can issue can occur on long term as well as short term protection to tape.

Chuck Whitson | Support Escalation Engineer

Version history
Last update:
‎Mar 11 2019 08:28 AM
Updated by: