Overload argument type expansion leads to combinatoric explosion (original) (raw)

Minimized file content(this takes ~4GB ram on my computer, original file(attached also at the bottom) takes more than 20GB)

    self.log(level, http_response, args, exc_info=exc_info)


def log_request(self, level, operationType, additionalCorrelationIds=None, correlationId=None,
                deploymentConfiguration=None, durationInMs=None, endpoint=None,
                endpointHostName=None, endpointPath=None, endTime=None,
                exceptionClass=None, exceptionDetail=None,
                exceptionMessage=None, flagged=None, flaggedDescription=None,
                httpMethod=None, httpStatusCode=None, messageName=None,
                messageStats_Avg=None, messageStats_Count=None,
                messageStats_ErrorCount=None, messageStats_Max=None,
                messageStats_P50=None, messageStats_P90=None,
                messageStats_P99=None, persistentConnection=None, product=None,
                retryCount=None, secondaryCorrelationId=None, sourceCloudPlatform=None,
                startTime=None, exc_info=None):
    args = dict(additionalCorrelationIds=additionalCorrelationIds,
                correlationId=correlationId,
                deploymentConfiguration=deploymentConfiguration,
                durationInMs=durationInMs,
                endpoint=endpoint,
                endpointHostName=endpointHostName,
                endpointPath=endpointPath,
                endTime=endTime,
                exceptionDetail=exceptionDetail,
                exceptionMessage=exceptionMessage,
                flagged=flagged,
                flaggedDescription=flaggedDescription,
                httpMethod=httpMethod,
                httpStatusCode=httpStatusCode,
                messageName=messageName,
                messageStats_Avg=messageStats_Avg,
                messageStats_Count=messageStats_Count,
   True              messageStats_ErrorCount=messageStats_ErrorCount,
                messageStats_Max=messageStats_Max,
                messageStats_P50=messageStats_P50,
                messageStats_P90=messageStats_P90,

running ty check file.py causes app out of memory crash.
Looks that check_types allocates a lot of memory

Image

Untitled Folder.zip