a5dd6389b2
* fix: sentry memory leak by disabling includeLocalVariables * Enhance heap snapshot consistency and labeling To facilitate more accurate and consistent heap memory snapshots, a new function forceConsistentGC was added before taking a snapshot. This ensures the garbage collector (GC) runs multiple times, stabilizing the heap state for more reliable analysis. This is particularly helpful when debugging memory-related issues. Updates to the memory-leak-detector script now allow labeling of snapshot runs using the --label flag. This helps in distinguishing different runs for easier tracking and comparison of memory usage across test sessions. Additionally, the --expose-gc flag ensures that the GC can be manually triggered during test runs, leading to more consistent memory states and potentially uncovering hidden memory leaks. * Refactor forceConsistentGC for improved readability The function forceConsistentGC was refactored to enhance code readability and consistency. The main improvements include: - Updated syntax for consistent string quotation and spacing. - Simplified garbage collection by removing specific major/minor GC calls, as the distinction isn't necessary. - Implemented minor changes to arrow function formatting for consistency. These changes neither impact the program logic nor the function behavior but help maintain code quality standards and readability. * Fix memory leak by removing request.clone() usage Identified that the memory leak in the project was linked to the usage of request.clone() within the `@sentry/remix` package's callRouteAction handler. Although initially suspected as a Sentry issue, the problem appears to arise from the handling of request.clone() in Remix version 2.1.0. By removing the call to request.clone(), the memory leak has been resolved. - Introduced garbage collection execution before snapshot to manage memory allocation effectively. - Improved error handling and timeout mechanisms in the memory leak detector to enhance its resilience during runtime. - Expanded testing for both GET and POST requests to monitor and validate potential memory leaks better. The POST requests involve sending large payloads to stress-test the system. - The modification particularly focuses on enhancing robust memory tracking and providing detailed progress reporting during request phases. * patch @sentry/remix to prevent memory leaks * Fix pnpm lock * undo some unrelated changes
28 lines
776 B
TypeScript
28 lines
776 B
TypeScript
import * as Sentry from "@sentry/remix";
|
|
|
|
if (process.env.SENTRY_DSN) {
|
|
console.log("🔭 Initializing Sentry");
|
|
|
|
Sentry.init({
|
|
dsn: process.env.SENTRY_DSN,
|
|
release: process.env.BUILD_GIT_SHA,
|
|
|
|
// Adds request headers and IP for users, for more info visit: and captures action formData attributes
|
|
// https://docs.sentry.io/platforms/javascript/guides/remix/configuration/options/#sendDefaultPii
|
|
sendDefaultPii: false,
|
|
|
|
skipOpenTelemetrySetup: true,
|
|
registerEsmLoaderHooks: false,
|
|
disableInstrumentationWarnings: true,
|
|
|
|
maxBreadcrumbs: 0,
|
|
shutdownTimeout: 10,
|
|
|
|
serverName: process.env.SERVICE_NAME,
|
|
environment: process.env.APP_ENV,
|
|
|
|
ignoreErrors: ["queryRoute() call aborted"],
|
|
includeLocalVariables: false,
|
|
});
|
|
}
|