SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 57701: A Read-access or segmentation violation occurs when you update metadata with the "Update Metadata" option or with the METALIB procedure

DetailsHotfixAboutRate It

When you update metadata for a table using either a client application (for example, SAS® Management Console) or PROC METALIB, the metadata might not be updated. When this problem occurs, the SAS log shows either a Read-access violation or a segmentation violation, depending on your operating environment. In Microsoft Windows environments, you receive a Read-access violation. In UNIX and Linux environments, you receive a segmentation violation.

In SAS Management Console, you receive the violation when you do the following:

  1. Right-click the database management server (DBMS) table and select Update Metadata.
  2. In the dialog box that appears, you click Yes when it asks whether you want to continue.

After you click Yes, another dialog box then appears with a message similar to the following:

0 of 1 tables updated. 1 tables failed to update. Do you want to view details.

Clicking Yes in this dialog box opens the SAS log where you can see the full error, as shown below. (This is the same error that you receive in Base SAS® software when you run PROC METALIB code to update the metadata.)

2 proc metalib; 3 4 omr (libid="B50000S2" repid="A5DR84EU"); 5 report(type = summary); 6 update_rule = (noadd); 7 dbauth(dbuser="dbc" 8 dbpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXX); 9 select (A5DR84EU.BN0000S8); 10 11 run; ERROR: An exception has been encountered. Please contact technical support and provide them with the following traceback information: The SAS task name is [METALIB (2)] ERROR: Read Access Violation METALIB (2) Exception occurred at (060A7AEE) Task Traceback Address Frame (DBGHELP API Version 4.0 rev 5) 00000000060A7AEE 00000000061EE140 sasmetas:tkvercn1+0x36AAE 00000000060885AC 00000000061EF1D0 sasmetas:tkvercn1+0x1756C 0000000006073501 00000000061EFBF0 sasmetas:tkvercn1+0x24C1 00000000022489DB 00000000061EFBF8 sashost:Main+0x10EBB 000000000224E61D 00000000061EFF50 sashost:Main+0x16AFD 0000000076AA652D 00000000061EFF58 kernel32:BaseThreadInitThunk+0xD 0000000076CDC541 00000000061EFF88 ntdll:RtlUserThreadStart+0x21 NOTE: The SAS System stopped processing this step because of errors. NOTE: PROCEDURE METALIB used (Total process time): real time 3.70 seconds cpu time 0.11 seconds

The problem occurs when all of the following are true:

  • Many options are defined in a LIBNAME statement such that the statement has a total of more than 256 characters.
  • One of the options in the LIBNAME statement is of the form option-name="string=value" (for example, QUERY_BAND="ClientUser=user-ID;").
  • A macro-variable reference is part of the LIBNAME statement definition.

Here is an example of such a LIBNAME statement:

libname libref teradata bulkload=yes access=readonly mode=Teradata sql_functions=all dbsliceparm=(threaded_apps,4) direct_exe=delete direct_sql=yes dbcommit=50000 reread_exposure=yes query_band="ClientUser=&sysuserid;" server="server-name" schema=schema-name user=user-ID PASSWORD="password" ;

To work around this problem, you either need to reduce the number of options that are defined for the library in the LIBNAME statement or remove the macro-variable reference.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemBase SASz/OS9.4_M39.4_M49.4 TS1M39.4 TS1M4
z/OS 64-bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft® Windows® for x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8 Enterprise 32-bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8 Enterprise x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8 Pro 32-bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8 Pro x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8.1 Enterprise 32-bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8.1 Enterprise x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8.1 Pro9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 8.1 Pro 32-bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows 109.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 20089.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2008 R29.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2008 for x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2012 Datacenter9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2012 R2 Datacenter9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2012 R2 Std9.4_M39.4_M49.4 TS1M39.4 TS1M4
Microsoft Windows Server 2012 Std9.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Enterprise 32 bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Enterprise x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Home Premium 32 bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Home Premium x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Professional 32 bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Professional x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Ultimate 32 bit9.4_M39.4_M49.4 TS1M39.4 TS1M4
Windows 7 Ultimate x649.4_M39.4_M49.4 TS1M39.4 TS1M4
64-bit Enabled AIX9.4_M39.4_M49.4 TS1M39.4 TS1M4
64-bit Enabled Solaris9.4_M39.4_M49.4 TS1M39.4 TS1M4
HP-UX IPF9.4_M39.4_M49.4 TS1M39.4 TS1M4
Linux for x649.4_M39.4_M49.4 TS1M39.4 TS1M4
Solaris for x649.4_M39.4_M49.4 TS1M39.4 TS1M4
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.