Short dump in function /AWS1/IF_S3~GETOBJECTATTRIBUTES. Can I get it fixed

0

Using the latest version AWS SDK for SAP ABAP v1 (1.12.14) core [s3,smr,rla,sts] When I try to call this class method /AWS1/IF_S3~GETOBJECTATTRIBUTES, the reports halts with a short dump in in /AWS/ namespace code.

Is it possible to get a fix on this from AWS !

Dump info
==========================
Category               ABAP programming error
Runtime Errors         OBJECTS_OBJREF_NOT_ASSIGNED
ABAP: Program          /AWS1/CL_S3===================CP
Application Component  CA
Date and Time          04.10.2024 14:07:03 (UTC)

Short Text
    Access using a 'ZERO' object reference is not possible.

"OBJECTS_OBJREF_NOT_ASSIGNED"
"/AWS1/CL_S3===================CP" bzw. /AWS1/CL_S3===================CM019
"/AWS1/IF_S3~GETOBJECTATTRIBUTES"

Information on where terminated
    The termination occurred in ABAP program or include
     "/AWS1/CL_S3===================CP", in "/AWS1/IF_S3~GETOBJECTATTRIBUTES". The
    main program was "ZAWS_DEMO_S3_LISTBUCKETS".

    In the source code, the termination point is in line 223 of include
     "/AWS1/CL_S3===================CM019".
    include "/AWS1/CL_S3===================CM019".

This is a code to reproduce the problem

DATA(go_session) = /aws1/cl_rt_session_aws=>create( 'ARCHIVE'  ).
DATA(gv_bucket) = go_session->resolve_lresource( 'ARCHIVES3' ).
WRITE: / 'Bucket Name: ', gv_bucket.
DATA(go_s3)       = /aws1/cl_s3_factory=>create( go_session ).

  DATA: lt_objectattributes TYPE STANDARD TABLE OF REF TO /aws1/cl_s3_objectattrslist_w WITH DEFAULT KEY.

  APPEND NEW #( 'ETag' ) TO lt_objectattributes.
  APPEND NEW #( 'Checksum' ) TO lt_objectattributes.
  APPEND NEW #( 'ObjectParts' ) TO lt_objectattributes.
  APPEND NEW #( 'StorageClass' ) TO lt_objectattributes.
  APPEND NEW #( 'ObjectSize' ) TO lt_objectattributes.

  TRY.
      DATA(lo_output3) = go_s3->getobjectattributes(
                          iv_bucket               = CONV string( gv_bucket )
                          iv_key                  = 'RSD02280.ARCHIVE'
*                          iv_versionid            = iv_versionid
*                          iv_maxparts             = iv_maxparts
*                          iv_partnumbermarker     = iv_partnumbermarker
*                          iv_ssecustomeralgorithm = iv_ssecustomeralgorithm
*                          iv_ssecustomerkey       = iv_ssecustomerkey
*                          iv_ssecustomerkeymd5    = iv_ssecustomerkeymd5
*                          iv_requestpayer         = iv_requestpayer
*                          iv_expectedbucketowner  = iv_expectedbucketowner
                          it_objectattributes     = lt_objectattributes
                        ).

      SKIP.
      IF lo_output3->has_versionid( ) EQ abap_true.
        WRITE: / 'Version Id: ', lo_output3->get_versionid( ).
      ENDIF.
      IF lo_output3->has_objectsize( ) EQ abap_true.
        WRITE: / 'Object Size: ', lo_output3->get_objectsize( ).
      ENDIF.
      IF lo_output3->has_lastmodified( ) EQ abap_true.
        WRITE: / 'Last Modified: ', lo_output3->get_lastmodified( ).
      ENDIF.

    CATCH /aws1/cx_s3_nosuchkey INTO go_ex.
      WRITE: / 'Error: ', go_ex->if_message~get_text( ).
    CATCH /aws1/cx_s3_clientexc INTO go_ex.
      WRITE: / 'Error: ', go_ex->if_message~get_text( ).
    CATCH /aws1/cx_s3_serverexc INTO go_ex.
      WRITE: / 'Error: ', go_ex->if_message~get_text( ).
    CATCH /aws1/cx_rt_technical_generic INTO go_ex.
      WRITE: / 'Error: ', go_ex->if_message~get_text( ).
    CATCH /aws1/cx_rt_service_generic INTO go_ex.
      WRITE: / 'Error: ', go_ex->if_message~get_text( ).
  ENDTRY.
asked 2 months ago112 views
3 Answers
1

Hi Jon Thank you for the information. We have now created a support ticket for this issue.

answered 2 months ago
0
Accepted Answer

Hi Siggi,

Thank you for reaching out. Can you send a case at https://support.console.aws.amazon.com/support/home#/case/create (service: S3, category General Guidance). Mention that you are using the ABAP SDK and provide a link to this re:Post thread and they will route the ticket quickly to the right team. For fast resolution I'd like you to

  • attach the entire short dump in .txt format
  • activate the SDK's payload trace while reproducing the issue, and attach the traces to the ticket.

Thank you, Jon

profile pictureAWS
answered 2 months ago
0

Thank you for providing the detailed information about the issue you're experiencing with the AWS SDK for SAP ABAP. The short dump you're encountering in the /AWS1/IF_S3~GETOBJECTATTRIBUTES method is indeed a concerning issue.

Based on the error message "Access using a 'ZERO' object reference is not possible," it appears that there's an attempt to access an object that hasn't been properly initialized or assigned. This is typically an indication of a bug in the SDK's implementation.

Given that you're using the latest version of the AWS SDK for SAP ABAP (v1.12.14), this issue should be addressed by the AWS development team. As a customer, you have the right to report this bug and request a fix from AWS.

To get this issue resolved, I recommend taking the following steps:

  1. Document the issue thoroughly, including the exact version of the SDK you're using, the code that reproduces the problem (which you've already done), and the full error message and stack trace.

  2. Contact AWS Support directly. If you have an AWS support plan, you can open a technical support case through the AWS Support Center.

  3. If you don't have a support plan or prefer a community-based approach, you can report the issue on the AWS SDK for SAP ABAP GitHub repository. Look for an "Issues" section where you can create a new issue detailing the problem.

  4. In your report, include all the information you've provided here, especially the code to reproduce the problem and the full dump info.

  5. While waiting for a fix, you may want to explore if there are any workarounds, such as using alternative methods to retrieve object attributes or checking for null references before making the call.

Remember to keep your SDK updated, as AWS might release a patch to fix this issue in a future version. In the meantime, you may need to implement error handling to catch and manage this exception in your code to prevent the short dump from halting your entire program.

AWS typically responds to critical bugs in their SDKs, so you should expect them to investigate and provide a fix or at least a workaround for this issue.
Sources
Update to AWS SDK for Java v2, AWS SDK for .NET v3, and AWS Tools for PowerShell when using S3 GetObjectAttributes API | AWS Developer Tools Blog
Use UpdateFunctionCode with an AWS SDK or CLI - AWS SDK Code Examples

profile picture
answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions