microsoft / playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
https://playwright.dev
Apache License 2.0
66.26k stars 3.62k forks source link

[BUG] Can't run tests in TeamCity using Firefox and the Playwright Docker image #16099

Closed eatonjl closed 2 years ago

eatonjl commented 2 years ago

Context:

Code Snippet

Help us help you! Put down a short code snippet that illustrates your bug and that we can run and debug locally. For example:

// global-setup.ts
import { chromium, FullConfig } from '@playwright/test';
import { GatewayLogin } from './tests/PageObjectModels/Gateway/login-page';

async function globalSetup(config: FullConfig) {
    const { baseURL, storageState, ignoreHTTPSErrors } = config.projects[0].use;
    const browser = await chromium.launch();
    const context = await browser.newContext({
        locale: 'en-us',
        ignoreHTTPSErrors,
    });
    const page = await context.newPage();
    try {
        await context.tracing.start({ screenshots: true, snapshots: true });
        const gatewayLogin = new GatewayLogin(page);
        await page.goto(baseURL!);
        await gatewayLogin.username.fill(process.env.MARTIN1_USERNAME!);
        await gatewayLogin.password.fill(process.env.MARTIN1_PASSWORD!);
        await Promise.all([
            page.waitForNavigation({url: baseURL! }),
            page.locator('text=Sign In').click(),
        ]);
        // Save signed-in state to 'storageState.json'.
        await page.context().storageState({ path: storageState as string });
        await context.tracing.stop({
            path: './test-results/setup-trace.zip',
        });
        await browser.close();
    } catch (error) {
        await context.tracing.stop({
            path: './test-results/failed-setup-trace.zip',
        });
        await page.close();
        throw error;
    }
}

export default globalSetup;
// playwright.config.ts
import type { PlaywrightTestConfig } from '@playwright/test';
import { devices, expect } from '@playwright/test';
import matchers from 'expect-axe-playwright';
import dotenv from 'dotenv';

/**
 * Read environment variables from file.
 * https://github.com/motdotla/dotenv
 */
dotenv.config();

/* expect-axe-playwright settings*/
expect.extend(matchers);

/**
 * See https://playwright.dev/docs/test-configuration.
 */
const config: PlaywrightTestConfig = {
    testDir: './tests',
    /* Maximum time one test can run for. */
    timeout: 40 * 1000,
    expect: {
        /**
         * Maximum time expect() should wait for the condition to be met.
         * For example in `await expect(locator).toHaveText();`
         */
        timeout: 10000,
    },
    // Tell all tests to load signed-in state from 'storageState.json'.
    globalSetup: require.resolve('./global-setup'),
    /* Fail the build on CI if you accidentally left test.only in the source code. */
    forbidOnly: !!process.env.CI,
    /* Stop the test run after reaching this number of failed tests and skip any tests that were not executed yet. This is useful to avoid wasting resources on broken test suites. */
    maxFailures: process.env.CI ? 10 : undefined,
    /* Retry on CI only */
    retries: process.env.CI ? 2 : 0,
    /* Opt out of parallel tests on CI. */
    workers: 1,
    /* Reporter to use. See https://playwright.dev/docs/test-reporters */
    //reporter: process.env.CI ? 'dot' : 'list',
    reporter: process.env.CI
        ? [
                ['list'],
                [
                    'playwright-teamcity-reporter',
                    { testMetadataArtifacts: 'test-results', logConfig: false },
                ],
          ]
        : 'list',
    // reporter: [
    //  ['list'],
    //  ['playwright-teamcity-reporter', { testMetadataArtifacts: 'test-results' }],
    // ],
    /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
    use: {
        /* expect-axe-playwright settings*/
        axeOptions: {
            runOnly: {
                type: 'tag',
                values: ['wcag2a', 'wcag2aa'],
            },
        },
        ignoreHTTPSErrors: true,
        storageState: 'storageState.json',
        /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
        actionTimeout: 0,
        /* Base URL to use in actions like `await page.goto('/')`. */
        baseURL: process.env.BASE_URL,

        /* Collect trace when retrying the failed test. See v */
        trace: 'retain-on-failure',
    },

    /* Configure projects for major browsers */
    projects: [
        {
            name: 'chromium',
            testIgnore: Array(
                /mobileviewshould.spec.ts/,
                /digitalintakeshould.spec.ts/
            ),
            use: {
                ...devices['Desktop Chrome'],
            },
        },

        {
            name: 'firefox',
            testIgnore: Array(
                /mobileviewshould.spec.ts/,
                /digitalintakeshould.spec.ts/
            ),
            use: {
                ...devices['Desktop Firefox'],
            },
        },

        {
            name: 'webkit',
            testIgnore: Array(
                /mobileviewshould.spec.ts/,
                /digitalintakeshould.spec.ts/
            ),
            use: {
                ...devices['Desktop Safari'],
            },
        },

        /* Test against mobile viewports. */
        {
            name: 'Mobile Chrome',
            testIgnore: Array(
                /smoketestshould.spec.ts/,
                /epimshould.spec.ts/,
                /draftandcollaborationshould.spec.ts/,
                /reviewandapprovalshould.spec.ts/
            ),
            use: {
                ...devices['Pixel 5'],
            },
        },
        {
            name: 'iPhone 13 Mobile Safari',
            testIgnore: Array(
                /smoketestshould.spec.ts/,
                /epimshould.spec.ts/,
                /draftandcollaborationshould.spec.ts/,
                /reviewandapprovalshould.spec.ts/
            ),
            use: {
                ...devices['iPhone 13'],
            },
        },
        {
            name: 'iPhone 13 Pro Max Mobile Safari',
            testIgnore: Array(
                /smoketestshould.spec.ts/,
                /epimshould.spec.ts/,
                /draftandcollaborationshould.spec.ts/,
                /reviewandapprovalshould.spec.ts/
            ),
            use: {
                ...devices['iPhone 13 Pro Max'],
            },
        },
        {
            name: 'iPhone 12 Mobile Safari',
            testIgnore: Array(
                /smoketestshould.spec.ts/,
                /epimshould.spec.ts/,
                /draftandcollaborationshould.spec.ts/,
                /reviewandapprovalshould.spec.ts/
            ),
            use: {
                ...devices['iPhone 12'],
            },
        },
        {
            name: 'Samsung Galaxy S22 Ultra 5G Mobile Safari',
            testIgnore: Array(
                /smoketestshould.spec.ts/,
                /epimshould.spec.ts/,
                /draftandcollaborationshould.spec.ts/,
                /reviewandapprovalshould.spec.ts/
            ),
            use: {
                ...devices['iPhone 12'],
            },
        },

        /* Test against branded browsers. */
        {
            name: 'Microsoft Edge',
            use: {
                channel: 'msedge',
            },
        },
        {
            name: 'Google Chrome',
            use: {
                channel: 'chrome',
            },
        },
    ],

    /* Folder for test artifacts such as screenshots, videos, traces, etc. */
    // outputDir: 'test-results/',

    /* Run your local dev server before starting the tests */
    // webServer: {
    //   command: 'npm run start',
    //   port: 3000,
    // },
};

export default config;
//example.spec.ts
import { test, expect } from '@playwright/test';

test('homepage has Playwright in title and get started link linking to the intro page', async ({ page }) => {
  await page.goto('https://playwright.dev/');

  // Expect a title "to contain" a substring.
  await expect(page).toHaveTitle(/Playwright/);

  // create a locator
  const getStarted = page.locator('text=Get Started');

  // Expect an attribute "to be strictly equal" to the value.
  await expect(getStarted).toHaveAttribute('href', '/docs/intro');

  // Click the get started link.
  await getStarted.click();

  // Expects the URL to contain intro.
  await expect(page).toHaveURL(/.*intro/);
});

Describe the bug

When I run these tests in TeamCity using Chrome or Safari, it will say it is running the test using one worker and the tests will run. I use the following shell scripts: "npx playwright test tests/smoketestshould --project=chromium" "npx playwright test tests/smoketestshould --project=webkit" When run using Firefox ("npx playwright test tests/smoketestshould --project=firefox") it will say it is running tests on 1 worker and then hang indefinitely (longest I let it run was 16 hours).

The only way I have found to fix it was to use this shell script: chown root . npx playwright test tests/smoketestshould --project=firefox

This was found while working out another issue. The person assisting said, "It might be due to how Firefox stores its files in the temporary partition, and depending on the docker setup it might work or not."

Is there any reason the extra line in the shell script is needed when running these tests in the Playwright Docker container image?

mxschmitt commented 2 years ago

Could you set the DEBUG=pw:browser env var which should result in more debug output for Firefox?

eatonjl commented 2 years ago

Thanks @mxschmitt for sending that! I gave that a go. With "chown root ." in the shell script, this was the results:

10:59:45 Step 1/1: Build & Run (Node.js)
10:59:45   Running step within Docker container mcr.microsoft.com/playwright
10:59:45   Starting: /bin/sh -c "docker pull mcr.microsoft.com/playwright && . /opt/buildagent/temp/agentTmp/docker-wrapper-15634980834217187492.sh && docker run --rm -w /opt/buildagent/work/6f7a18f2c8f56a5c/PolicyTechAutomationTests --label jetbrains.teamcity.buildId=111236 --network host --ipc=host -v "/opt/buildagent/lib:/opt/buildagent/lib:ro" -v "/opt/buildagent/tools:/opt/buildagent/tools:ro" -v "/opt/buildagent/plugins:/opt/buildagent/plugins:ro" -v "/opt/buildagent/work/6f7a18f2c8f56a5c:/opt/buildagent/work/6f7a18f2c8f56a5c" -v "/opt/buildagent/temp/agentTmp:/opt/buildagent/temp/agentTmp" -v "/opt/buildagent/temp/buildTmp:/opt/buildagent/temp/buildTmp" -v "/opt/buildagent/system:/opt/buildagent/system" --env-file /opt/buildagent/temp/agentTmp/docker-wrapper-12302586922643686133.envList --entrypoint /bin/sh mcr.microsoft.com/playwright /opt/buildagent/temp/agentTmp/docker-shell-script-5878000277376030206.sh"
10:59:45   in directory: /opt/buildagent/work/6f7a18f2c8f56a5c/PolicyTechAutomationTests
10:59:45   Using default tag: latest
10:59:45   latest: Pulling from playwright
10:59:46   Digest: sha256:677b240919f3ca23fe7d7547fb9b1aa4e73513bcf623238300e344200f4f6a04
10:59:46   Status: Image is up to date for mcr.microsoft.com/playwright:latest
10:59:46   mcr.microsoft.com/playwright:latest
10:59:48   
10:59:48   Running 88 tests using 1 worker
10:59:48   
10:59:48   2022-08-01T14:59:48.922Z pw:browser <launching> /ms-playwright/chromium-1015/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/opt/buildagent/temp/buildTmp/playwright_chromiumdev_profile-eocmNK --remote-debugging-pipe --no-startup-window
10:59:48   2022-08-01T14:59:48.930Z pw:browser <launched> pid=121
10:59:49   2022-08-01T14:59:49.040Z pw:browser [pid=121][err] [0801/145949.039838:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
10:59:49   2022-08-01T14:59:49.041Z pw:browser [pid=121][err] [0801/145949.039971:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
10:59:49   2022-08-01T14:59:49.058Z pw:browser [pid=121][err] [0801/145949.058440:WARNING:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
10:59:49   2022-08-01T14:59:49.075Z pw:browser [pid=121][err] [0801/145949.074979:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable.
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] [0801/145951.545971:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] [0801/145951.546028:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] [0801/145951.546057:ERROR:cert_verify_proc_builtin.cc(690)] CertVerifyProcBuiltin for doorman.qa1.gw.navex-pe.com failed:
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] ----- Certificate i=1 (CN=OBIWANDC,0.9.2342.19200300.100.1.25=#796F6461,0.9.2342.19200300.100.1.25=#6C6F63616C) -----
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] ERROR: No matching issuer found
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err]
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err]
10:59:51   2022-08-01T14:59:51.546Z pw:browser [pid=121][err] [0801/145951.546353:ERROR:ssl_client_socket_impl.cc(983)] handshake failed; returned -1, SSL error code 1, net_error -202
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] [0801/145951.584099:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] [0801/145951.584156:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] [0801/145951.584185:ERROR:cert_verify_proc_builtin.cc(690)] CertVerifyProcBuiltin for id1.qa1.gw.navex-pe.com failed:
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] ----- Certificate i=1 (CN=OBIWANDC,0.9.2342.19200300.100.1.25=#796F6461,0.9.2342.19200300.100.1.25=#6C6F63616C) -----
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] ERROR: No matching issuer found
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err]
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err]
10:59:51   2022-08-01T14:59:51.584Z pw:browser [pid=121][err] [0801/145951.584464:ERROR:ssl_client_socket_impl.cc(983)] handshake failed; returned -1, SSL error code 1, net_error -202
10:59:56   2022-08-01T14:59:56.306Z pw:browser [pid=121] <gracefully close start>
10:59:56   2022-08-01T14:59:56.328Z pw:browser [pid=121] <process did exit: exitCode=0, signal=null>
10:59:56   2022-08-01T14:59:56.328Z pw:browser [pid=121] starting temporary directories cleanup
10:59:56   2022-08-01T14:59:56.338Z pw:browser [pid=121] finished temporary directories cleanup
10:59:56   2022-08-01T14:59:56.338Z pw:browser [pid=121] <gracefully close end>
10:59:57     pw:browser <launching> /ms-playwright/firefox-1335/firefox/firefox -no-remote -headless -profile /opt/buildagent/temp/buildTmp/playwright_firefoxdev_profile-cXKjXT -juggler-pipe -silent +0ms
10:59:57     pw:browser <launched> pid=430 +6ms
10:59:57     pw:browser [pid=430][err] *** You are running in headless mode. +22ms
10:59:57     pw:browser [pid=430][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.271867) [GFX1-]: glxtest: libpci missing +251ms
10:59:57     pw:browser [pid=430][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.271867) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.271923) [GFX1-]: glxtest: Unable to open a connection to the X server +0ms
10:59:57     pw:browser [pid=430][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.271867) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.271923) |[2][GFX1-]: glxtest: libEGL initialize failed (t=0.271932) [GFX1-]: glxtest: libEGL initialize failed +0ms
10:59:57     pw:browser [pid=430][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.271867) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.271923) |[2][GFX1-]: glxtest: libEGL initialize failed (t=0.271932) |[3][GFX1-]: No GPUs detected via PCI (t=0.271945) [GFX1-]: No GPUs detected via PCI +1ms
10:59:57     pw:browser [pid=430][out]  +135ms
10:59:57     pw:browser [pid=430][out] Juggler listening to the pipe +0ms
10:59:58     pw:browser [pid=430][out] console.warn: SearchSettings: "get: No settings file exists, new profile?" (new NotFoundError("Could not open the file at /opt/buildagent/temp/buildTmp/playwright_firefoxdev_profile-cXKjXT/search.json.mozlz4", (void 0))) +650ms
10:59:58     pw:browser [pid=430][out] console.error: SearchEngineSelector: "Received empty search configuration!" +53ms
10:59:58     pw:browser [pid=430][out] console.error: SearchEngineSelector: "Received empty search configuration!" +27ms
10:59:58     pw:browser [pid=430][out] console.error: SearchService: "_init: failure initializing search:" ({}) +0ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +3ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +0ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +0ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +0ms
10:59:58     pw:browser [pid=430][err] JavaScript error: resource://gre/modules/SearchService.jsm, line 196: NS_ERROR_UNEXPECTED: SearchService previously failed to initialize +0ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +228ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +24ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +167ms
10:59:58     pw:browser [pid=430][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.271867) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.271923) |[2][GFX1-]: glxtest: libEGL initialize failed (t=0.271932) |[3][GFX1-]: No GPUs detected via PCI (t=0.271945) |[4][GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt (t=1.58168) [GFX1-]: RenderCompositorSWGL failed mapping default framebuffer, no dt +22ms
10:59:58     pw:browser [pid=430][err] JavaScript error: , line 0: uncaught exception: 2147549183 +20ms
10:59:59     pw:browser [pid=430][out] console.error: SearchSettings: "_write: Could not write to settings file:" (new Error("cannot write without any engine.", "resource://gre/modules/SearchSettings.jsm", 216)) +458ms
11:00:06     ✓  [firefox] › smoketestshould.spec.ts:99:2 › Main Page › Load Home Page (8s)
11:00:09     ✓  [firefox] › smoketestshould.spec.ts:106:2 › Main Page › Load My Tasks Page (3s)
11:00:11     ✓  [firefox] › smoketestshould.spec.ts:114:3 › Main Page › My Disclosures › Load In Progress Page (2s)
11:00:13     ✓  [firefox] › smoketestshould.spec.ts:124:3 › Main Page › My Disclosures › Load Completed Page (2s)
11:00:14     ✓  [firefox] › smoketestshould.spec.ts:136:3 › Main Page › Documents › Load Search Page (1s)
11:00:16     ✓  [firefox] › smoketestshould.spec.ts:145:3 › Main Page › Documents › Load Browse Page (2s)
11:00:17     ✓  [firefox] › smoketestshould.spec.ts:154:3 › Main Page › Documents › Load Favorites Page (1s)
11:00:19     ✓  [firefox] › smoketestshould.spec.ts:165:3 › Main Page › Documents › Load Recent Page (1s)
11:00:20     ✓  [firefox] › smoketestshould.spec.ts:176:3 › Main Page › Assessments › Load Search Page (2s)
11:00:22     ✓  [firefox] › smoketestshould.spec.ts:185:3 › Main Page › Assessments › Load Browse Page (2s)
11:00:24     ✓  [firefox] › smoketestshould.spec.ts:194:3 › Main Page › Assessments › Load Recent Page (1s)
11:00:25     ✓  [firefox] › smoketestshould.spec.ts:205:3 › Main Page › Training › Load Search Page (1s)
11:00:27     ✓  [firefox] › smoketestshould.spec.ts:214:3 › Main Page › Training › Load Browse Page (2s)
11:00:28     ✓  [firefox] › smoketestshould.spec.ts:223:3 › Main Page › Training › Load Recent Page (1s)
11:00:31     ✓  [firefox] › smoketestshould.spec.ts:232:3 › Main Page › Training › Load My Training History Page (3s)
11:00:32     ✓  [firefox] › smoketestshould.spec.ts:244:3 › Main Page › Campaigns › Load Search Page (1s)
11:00:34     ✓  [firefox] › smoketestshould.spec.ts:253:3 › Main Page › Campaigns › Load Browse Page (2s)
11:00:37     ✓  [firefox] › smoketestshould.spec.ts:262:3 › Main Page › Campaigns › Load Recent Page (3s)
11:00:38     ✓  [firefox] › smoketestshould.spec.ts:272:2 › Main Page › Load Inbox Page (1s)
11:00:40     ✓  [firefox] › smoketestshould.spec.ts:279:2 › Main Page › Load Reports Page (1s)
11:00:41     ✓  [firefox] › smoketestshould.spec.ts:288:4 › Main Page › Settings & Tools › Company Setup › Load General Properties Page (1s)
11:00:42     ✓  [firefox] › smoketestshould.spec.ts:297:4 › Main Page › Settings & Tools › Company Setup › Load Sites Page (2s)
11:00:44     ✓  [firefox] › smoketestshould.spec.ts:304:4 › Main Page › Settings & Tools › Company Setup › Load Departments Page (1s)
11:00:46     ✓  [firefox] › smoketestshould.spec.ts:314:4 › Main Page › Settings & Tools › Company Setup › Load Department Groups Page (2s)
11:00:48     ✓  [firefox] › smoketestshould.spec.ts:324:4 › Main Page › Settings & Tools › Company Setup › Load Email Manager Page (2s)
11:00:49     ✓  [firefox] › smoketestshould.spec.ts:333:4 › Main Page › Settings & Tools › Company Setup › Load Job Titles Page (2s)
11:00:50     ✓  [firefox] › smoketestshould.spec.ts:343:4 › Main Page › Settings & Tools › Company Setup › Load Custom Links Page (1s)
11:00:52     ✓  [firefox] › smoketestshould.spec.ts:354:4 › Main Page › Settings & Tools › User Setup › Load User Manager Page (1s)
11:00:54     ✓  [firefox] › smoketestshould.spec.ts:364:4 › Main Page › Settings & Tools › User Setup › Load Group Manager Page (2s)
11:00:55     ✓  [firefox] › smoketestshould.spec.ts:374:4 › Main Page › Settings & Tools › User Setup › Load Bulk Permissions Editor Page (1s)
11:00:56     ✓  [firefox] › smoketestshould.spec.ts:383:4 › Main Page › Settings & Tools › User Setup › Load Roles & Permissions Editor Page (1s)
11:00:58     ✓  [firefox] › smoketestshould.spec.ts:394:4 › Main Page › Settings & Tools › Content Setup › Load Default Properties Page (1s)
11:01:00     ✓  [firefox] › smoketestshould.spec.ts:403:4 › Main Page › Settings & Tools › Content Setup › Load Categories Page (2s)
11:01:02     ✓  [firefox] › smoketestshould.spec.ts:413:4 › Main Page › Settings & Tools › Content Setup › Load Templates Page (2s)
11:01:04     ✓  [firefox] › smoketestshould.spec.ts:422:4 › Main Page › Settings & Tools › Content Setup › Load Import Documents Page (2s)
11:01:06     ✓  [firefox] › smoketestshould.spec.ts:432:4 › Main Page › Settings & Tools › Content Setup › Load Bulk Edit Page (1s)
11:01:08     ✓  [firefox] › smoketestshould.spec.ts:441:4 › Main Page › Settings & Tools › Tools › Load Archive Page (3s)
11:01:10     ✓  [firefox] › smoketestshould.spec.ts:448:4 › Main Page › Settings & Tools › Tools › Load Check For Updates Page (1s)
11:01:11     ✓  [firefox] › smoketestshould.spec.ts:457:4 › Main Page › Settings & Tools › Tools › Load Data Exports Page (1s)
11:01:13     ✓  [firefox] › smoketestshould.spec.ts:466:4 › Main Page › Settings & Tools › Tools › Load Database Manager Page (2s)
11:01:14     ✓  [firefox] › smoketestshould.spec.ts:475:4 › Main Page › Settings & Tools › Tools › Load Language Files Page (1s)
11:01:17     ✓  [firefox] › smoketestshould.spec.ts:485:4 › Main Page › Settings & Tools › Tools › Load Resend Task Emails Page (3s)
11:01:19     ✓  [firefox] › smoketestshould.spec.ts:494:4 › Main Page › Settings & Tools › Tools › Load View Logs Page (2s)
11:01:20     ✓  [firefox] › smoketestshould.spec.ts:503:4 › Main Page › Settings & Tools › IT Settings › Load Registration Info Page (2s)
11:01:22     ✓  [firefox] › smoketestshould.spec.ts:512:4 › Main Page › Settings & Tools › IT Settings › Load Email Settings Page (1s)
11:01:23     ✓  [firefox] › smoketestshould.spec.ts:522:4 › Main Page › Settings & Tools › IT Settings › Load Login Settings Page (2s)
11:01:25     ✓  [firefox] › smoketestshould.spec.ts:532:4 › Main Page › Settings & Tools › IT Settings › Load Module Manager Page (1s)
11:01:26     ✓  [firefox] › smoketestshould.spec.ts:541:4 › Main Page › Settings & Tools › IT Settings › Load Automated Dept. Synchronization Page (1s)
11:01:28     ✓  [firefox] › smoketestshould.spec.ts:554:4 › Main Page › Settings & Tools › IT Settings › Load Theme Manager Page (2s)
11:01:29     ✓  [firefox] › smoketestshould.spec.ts:563:4 › Main Page › Settings & Tools › IT Settings › Load Widget Settings Page (1s)
11:01:31     ✓  [firefox] › smoketestshould.spec.ts:572:2 › Main Page › About Page (2s)
11:01:32     ✓  [firefox] › smoketestshould.spec.ts:580:2 › Content Pages › Load Document Page (925ms)
11:01:34     ✓  [firefox] › smoketestshould.spec.ts:589:2 › Content Pages › Load Assessment Page (1s)
11:01:35     ✓  [firefox] › smoketestshould.spec.ts:598:2 › Content Pages › Load Campaign Page (2s)
11:01:36     pw:browser [pid=430][err] JavaScript warning: https://automationtestsite.wobbly.navex-int.com/content/dotNet/documents/WizardPanelPropertiesEdit/step_settings.aspx?isTemplate=false&siteID=undefined&clientWorkflowStepID=&docid=0&dataType=&stepNumber=1&wizardStepCount=1&defaultLibrary=7&NoCachingValue=1659366095501, line 2104: unreachable code after return statement +2m
11:01:36     pw:browser [pid=430][err] JavaScript error: https://automationtestsite.wobbly.navex-int.com/content/dotNet/documents/WizardPanelPropertiesEdit/step_settings.aspx?isTemplate=false&siteID=undefined&clientWorkflowStepID=&docid=0&dataType=&stepNumber=1&wizardStepCount=1&defaultLibrary=7&NoCachingValue=1659366095501, line 815: ReferenceError: EffectiveDate is not defined +206ms
11:01:38     ✓  [firefox] › smoketestshould.spec.ts:610:3 › Report Pages › My Tasks And Assessments › Load Assessment Results Report Page (3s)
11:01:40     ✓  [firefox] › smoketestshould.spec.ts:620:3 › Report Pages › My Tasks And Assessments › Load Owner - Periodic Tasks Report Page (2s)
11:01:42     ✓  [firefox] › smoketestshould.spec.ts:632:3 › Report Pages › My Tasks And Assessments › Load My Tasks Report Page (2s)
11:01:44     ✓  [firefox] › smoketestshould.spec.ts:643:3 › Report Pages › Campaign Reports › Load Tasks by Campaign - Current Report Page (3s)
11:01:47     ✓  [firefox] › smoketestshould.spec.ts:655:3 › Report Pages › Campaign Reports › Load Tasks by Campaign - All Report Page (3s)
11:01:50     ✓  [firefox] › smoketestshould.spec.ts:665:3 › Report Pages › Campaign Reports › Load Campaign Statistics Report Page (3s)
11:01:52     ✓  [firefox] › smoketestshould.spec.ts:679:4 › Report Pages › Tasks by Content (Documents, Assessments, Campaigns, Training) › Load Tasks by Content - Current Report Page (3s)
11:01:55     ✓  [firefox] › smoketestshould.spec.ts:691:4 › Report Pages › Tasks by Content (Documents, Assessments, Campaigns, Training) › Load Tasks by Content - All Tasks Report Page (3s)
11:01:58     ✓  [firefox] › smoketestshould.spec.ts:703:4 › Report Pages › Tasks by Content (Documents, Assessments, Campaigns, Training) › Load Content Due for Periodic Review Report Page (2s)
11:02:01     ✓  [firefox] › smoketestshould.spec.ts:715:4 › Report Pages › Tasks by Content (Documents, Assessments, Campaigns, Training) › Load Content with Links to Update Report Page (4s)
11:02:04     ✓  [firefox] › smoketestshould.spec.ts:730:3 › Report Pages › Tasks by User › Load Tasks by User - Current Report Page (3s)
11:02:06     ✓  [firefox] › smoketestshould.spec.ts:740:3 › Report Pages › Tasks by User › Load Tasks by User - All Tasks Report Page (3s)
11:02:09     ✓  [firefox] › smoketestshould.spec.ts:750:3 › Report Pages › Tasks by User › Load Owner - Periodic Review Tasks Report Page (3s)
11:02:12     ✓  [firefox] › smoketestshould.spec.ts:762:3 › Report Pages › Tasks by User › Load Owner - Links to Update Tasks Report Page (3s)
11:02:14     ✓  [firefox] › smoketestshould.spec.ts:776:3 › Report Pages › Tasks by Group › Load Writer Groups Report Page (2s)
11:02:16     ✓  [firefox] › smoketestshould.spec.ts:787:3 › Report Pages › Tasks by Group › Load Reviewer Groups Report Page (2s)
11:02:18     ✓  [firefox] › smoketestshould.spec.ts:798:3 › Report Pages › Tasks by Group › Load Approver Groups Report Page (2s)
11:02:20     ✓  [firefox] › smoketestshould.spec.ts:809:3 › Report Pages › Tasks by Group › Load Assignee Groups Report Page (2s)
11:02:23     ✓  [firefox] › smoketestshould.spec.ts:824:4 › Report Pages › Content Reports (Documents, Assessments, Campaigns, Training) › Content Workflow Assignments by Title (4s)
11:02:25     ✓  [firefox] › smoketestshould.spec.ts:836:4 › Report Pages › Content Reports (Documents, Assessments, Campaigns, Training) › Content Accessed (2s)
11:02:27     ✓  [firefox] › smoketestshould.spec.ts:845:4 › Report Pages › Content Reports (Documents, Assessments, Campaigns, Training) › Linked Content (2s)
11:02:29     ✓  [firefox] › smoketestshould.spec.ts:854:4 › Report Pages › Content Reports (Documents, Assessments, Campaigns, Training) › Change Summary (2s)
11:02:31     ✓  [firefox] › smoketestshould.spec.ts:863:4 › Report Pages › Content Reports (Documents, Assessments, Campaigns, Training) › Content Details (2s)
11:02:34     ✓  [firefox] › smoketestshould.spec.ts:875:3 › Report Pages › User Reports › Content Assignments by User (3s)
11:02:36     ✓  [firefox] › smoketestshould.spec.ts:887:3 › Report Pages › User Reports › Content Accessed by User (2s)
11:02:37     ✓  [firefox] › smoketestshould.spec.ts:897:3 › Report Pages › User Reports › Users Cancelled Mark as Read (1s)
11:02:39     ✓  [firefox] › smoketestshould.spec.ts:909:3 › Report Pages › User Reports › User Permissions (2s)
11:02:41     ✓  [firefox] › smoketestshould.spec.ts:920:3 › Report Pages › Assessment Reports › Assessment Results by Content (2s)
11:02:44     ✓  [firefox] › smoketestshould.spec.ts:932:3 › Report Pages › Assessment Reports › Assessment Results by User (2s)
11:02:47     ✓  [firefox] › smoketestshould.spec.ts:942:3 › Report Pages › Assessment Reports › Assessment Statistics (3s)
11:02:49     ✓  [firefox] › smoketestshould.spec.ts:955:3 › Report Pages › Exception Reports › Exceptions by Content (2s)
11:02:50     pw:browser [pid=430][out] console.warn: LoginRecipes: "getRecipes: falling back to a synchronous message for:" "https://automationtestsite.wobbly.navex-int.com" +1m
11:02:50     ✓  [firefox] › smoketestshould.spec.ts:968:3 › Report Pages › Administrative Reports › Users Currently Logged In (908ms)
11:02:53     ✓  [firefox] › smoketestshould.spec.ts:978:3 › Report Pages › Administrative Reports › Training License Pool Usage (3s)
11:02:54     ✓  [firefox] › smoketestshould.spec.ts:990:3 › Report Pages › Administrative Reports › Dedicated Licenses (677ms)
11:02:54     pw:browser [pid=430] <gracefully close start> +4s
11:02:54     pw:browser [pid=430] <process did exit: exitCode=0, signal=null> +275ms
11:02:54     pw:browser [pid=430] starting temporary directories cleanup +0ms
11:02:54     pw:browser [pid=430] finished temporary directories cleanup +215ms
11:02:54     pw:browser [pid=430] <gracefully close end> +0ms
11:02:54   
11:02:54     Slow test file: [firefox] › smoketestshould.spec.ts (3m)
11:02:54     Consider splitting slow test files to speed up parallel execution
11:02:54   
11:02:54     88 passed (3m)
11:02:54   smoketestshould.spec.ts
11:02:54     Main Page
11:02:54     Content Pages
11:02:54     Report Pages
11:02:54   Finished the run: passed
11:02:54   Process exited with code 0

With that line removed, I got this:

11:07:10 Step 1/1: Build & Run (Node.js)
11:07:10   Running step within Docker container mcr.microsoft.com/playwright
11:07:10   Starting: /bin/sh -c "docker pull mcr.microsoft.com/playwright && . /opt/buildagent/temp/agentTmp/docker-wrapper-6940177699655342114.sh && docker run --rm -w /opt/buildagent/work/6f7a18f2c8f56a5c/PolicyTechAutomationTests --label jetbrains.teamcity.buildId=111237 --network host --ipc=host -v "/opt/buildagent/lib:/opt/buildagent/lib:ro" -v "/opt/buildagent/tools:/opt/buildagent/tools:ro" -v "/opt/buildagent/plugins:/opt/buildagent/plugins:ro" -v "/opt/buildagent/work/6f7a18f2c8f56a5c:/opt/buildagent/work/6f7a18f2c8f56a5c" -v "/opt/buildagent/temp/agentTmp:/opt/buildagent/temp/agentTmp" -v "/opt/buildagent/temp/buildTmp:/opt/buildagent/temp/buildTmp" -v "/opt/buildagent/system:/opt/buildagent/system" --env-file /opt/buildagent/temp/agentTmp/docker-wrapper-7522133745703667016.envList --entrypoint /bin/sh mcr.microsoft.com/playwright /opt/buildagent/temp/agentTmp/docker-shell-script-7209027961336561023.sh"
11:07:10   in directory: /opt/buildagent/work/6f7a18f2c8f56a5c/PolicyTechAutomationTests
11:07:10   Using default tag: latest
11:07:10   latest: Pulling from playwright
11:07:10   Digest: sha256:677b240919f3ca23fe7d7547fb9b1aa4e73513bcf623238300e344200f4f6a04
11:07:10   Status: Image is up to date for mcr.microsoft.com/playwright:latest
11:07:10   mcr.microsoft.com/playwright:latest
11:07:13   
11:07:13   Running 88 tests using 1 worker
11:07:13   
11:07:13   2022-08-01T15:07:13.497Z pw:browser <launching> /ms-playwright/chromium-1015/chrome-linux/chrome --disable-field-trial-config --disable-background-networking --enable-features=NetworkService,NetworkServiceInProcess --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-back-forward-cache --disable-breakpad --disable-client-side-phishing-detection --disable-component-extensions-with-background-pages --disable-default-apps --disable-dev-shm-usage --disable-extensions --disable-features=ImprovedCookieControls,LazyFrameLoading,GlobalMediaControls,DestroyProfileOnBrowserClose,MediaRouter,DialMediaRouteProvider,AcceptCHFrame,AutoExpandDetailsElement,CertificateTransparencyComponentUpdater,AvoidUnnecessaryBeforeUnloadCheckSync --allow-pre-commit-input --disable-hang-monitor --disable-ipc-flooding-protection --disable-popup-blocking --disable-prompt-on-repost --disable-renderer-backgrounding --disable-sync --force-color-profile=srgb --metrics-recording-only --no-first-run --enable-automation --password-store=basic --use-mock-keychain --no-service-autorun --export-tagged-pdf --headless --hide-scrollbars --mute-audio --blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4 --no-sandbox --user-data-dir=/opt/buildagent/temp/buildTmp/playwright_chromiumdev_profile-sqnHUK --remote-debugging-pipe --no-startup-window
11:07:13   2022-08-01T15:07:13.505Z pw:browser <launched> pid=121
11:07:13   2022-08-01T15:07:13.607Z pw:browser [pid=121][err] [0801/150713.606149:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
11:07:13   2022-08-01T15:07:13.607Z pw:browser [pid=121][err] [0801/150713.606329:ERROR:bus.cc(398)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
11:07:13   2022-08-01T15:07:13.626Z pw:browser [pid=121][err] [0801/150713.626128:WARNING:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
11:07:13   2022-08-01T15:07:13.635Z pw:browser [pid=121][err] [0801/150713.634911:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable.
11:07:13   2022-08-01T15:07:13.776Z pw:browser [pid=121][err] [0801/150713.776722:ERROR:nss_util.cc(55)] Failed to create /root/.pki/nssdb directory.
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err] [0801/150714.214294:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err] [0801/150714.214387:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err] [0801/150714.214419:ERROR:cert_verify_proc_builtin.cc(690)] CertVerifyProcBuiltin for doorman.qa1.gw.navex-pe.com failed:
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err] ----- Certificate i=1 (CN=OBIWANDC,0.9.2342.19200300.100.1.25=#796F6461,0.9.2342.19200300.100.1.25=#6C6F63616C) -----
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err] ERROR: No matching issuer found
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err]
11:07:14   2022-08-01T15:07:14.214Z pw:browser [pid=121][err]
11:07:14   2022-08-01T15:07:14.215Z pw:browser [pid=121][err] [0801/150714.214732:ERROR:ssl_client_socket_impl.cc(983)] handshake failed; returned -1, SSL error code 1, net_error -202
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] [0801/150714.253285:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] [0801/150714.253340:ERROR:cert_issuer_source_aia.cc(134)] AiaRequest::OnFetchCompleted got error -301
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] [0801/150714.253370:ERROR:cert_verify_proc_builtin.cc(690)] CertVerifyProcBuiltin for id1.qa1.gw.navex-pe.com failed:
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] ----- Certificate i=1 (CN=OBIWANDC,0.9.2342.19200300.100.1.25=#796F6461,0.9.2342.19200300.100.1.25=#6C6F63616C) -----
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] ERROR: No matching issuer found
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err]
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err]
11:07:14   2022-08-01T15:07:14.253Z pw:browser [pid=121][err] [0801/150714.253602:ERROR:ssl_client_socket_impl.cc(983)] handshake failed; returned -1, SSL error code 1, net_error -202
11:07:18   2022-08-01T15:07:18.797Z pw:browser [pid=121] <gracefully close start>
11:07:18   2022-08-01T15:07:18.824Z pw:browser [pid=121] <process did exit: exitCode=0, signal=null>
11:07:18   2022-08-01T15:07:18.824Z pw:browser [pid=121] starting temporary directories cleanup
11:07:18   2022-08-01T15:07:18.840Z pw:browser [pid=121] finished temporary directories cleanup
11:07:18   2022-08-01T15:07:18.840Z pw:browser [pid=121] <gracefully close end>
11:07:19     pw:browser <launching> /ms-playwright/firefox-1335/firefox/firefox -no-remote -headless -profile /opt/buildagent/temp/buildTmp/playwright_firefoxdev_profile-5DjfhQ -juggler-pipe -silent +0ms
11:07:19     pw:browser <launched> pid=429 +6ms
11:07:19     pw:browser [pid=429][err] *** You are running in headless mode. +23ms
11:07:19     pw:browser [pid=429][err] Error: Access was denied while trying to open files in your profile directory. +1ms
11:07:19     pw:browser [pid=429][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.0566444) [GFX1-]: glxtest: libpci missing +34ms
11:07:19     pw:browser [pid=429][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.0566444) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.056694) [GFX1-]: glxtest: Unable to open a connection to the X server +0ms
11:07:19     pw:browser [pid=429][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.0566444) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.056694) |[2][GFX1-]: glxtest: libEGL initialize failed (t=0.0567025) [GFX1-]: glxtest: libEGL initialize failed +0ms
11:07:19     pw:browser [pid=429][out] Crash Annotation GraphicsCriticalError: |[0][GFX1-]: glxtest: libpci missing (t=0.0566444) |[1][GFX1-]: glxtest: Unable to open a connection to the X server (t=0.056694) |[2][GFX1-]: glxtest: libEGL initialize failed (t=0.0567025) |[3][GFX1-]: No GPUs detected via PCI (t=0.0567147) [GFX1-]: No GPUs detected via PCI +0ms
11:07:19     pw:browser [pid=429][err] Unable to revert mtime: /ms-playwright/firefox-1335/firefox/fonts +28ms
11:07:19     pw:browser [pid=429][err] JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. +79ms
11:07:19     pw:browser [pid=429][err] JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. +2ms
11:07:19     pw:browser [pid=429][err] JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. +2ms
11:07:19     pw:browser [pid=429][err] JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. +2ms
11:07:19     pw:browser [pid=429][err] JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory. +6ms
11:08:19     pw:browser [pid=429][err]  +60s
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.781: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.781: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.781: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +1ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.781: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.781: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +27ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.809: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.809: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.809: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:08:19     pw:browser [pid=429][err]  +0ms
11:08:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:08:19.809: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:09:19     pw:browser [pid=429][err]  +60s
11:09:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:09:19.782: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:09:19     pw:browser [pid=429][err]  +0ms
11:09:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:09:19.782: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:09:19     pw:browser [pid=429][err]  +13ms
11:09:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:09:19.795: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:09:19     pw:browser [pid=429][err]  +0ms
11:09:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:09:19.795: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +0ms
11:09:19     pw:browser [pid=429][err]  +0ms
11:09:19     pw:browser [pid=429][err] (firefox-default:429): dconf-CRITICAL **: 15:09:19.795: unable to create directory '/root/.cache/dconf': Permission denied.  dconf will not work properly. +1ms
11:09:19     pw:browser [pid=429][err]  +0ms
aslushnikov commented 2 years ago

@eatonjl: do you mount some partition into the container? And what user do you use to run scripts inside the container?

eatonjl commented 2 years ago

@aslushnikov: No. TeamCity does mount some volumes into the Playwright container, but not partitions. The user is whatever user Playwright has added to the Docker image, unless we use chown root in which case it runs as root.

mxschmitt commented 2 years ago

@eatonjl would it be possible that you provide us a repro without TeamCity? Otherwise we can't dig into it unfortunately.

eatonjl commented 2 years ago

I cannot share a repo, but I can send you the test files along with the login and URL you will need. Would that work? I assume I will need to send it through email like I did with this issue, correct?

mxschmitt commented 2 years ago

Most likely it's related to your Docker setup rather than to your actual test files. So the test files don't bring much value.

eatonjl commented 2 years ago

We are running the standard Playwright Docker image. Is there any information I can provide you on either the environment we are running it on or ho owe start it up that would be of use?

rwoll commented 2 years ago

Perhaps the Jenkins workaround mentioned here will help you or point you in the correct direction.

We're not too familiar (nor do we have TeamCity instance), so I recommend asking in TeamCity forums or Playwright Community Slack (and updating here so future users can find the information).

eatonjl commented 2 years ago

I don’t believe it has anything to do with TeamCity. I believe it is the environment it is being run on. I will set up a way to run it on the Linux server outside of TeamCity to see if I get the same issue.

mxschmitt commented 2 years ago

I see also that your Docker image is not pinned, make sure to pin it in the future: https://playwright.dev/docs/docker

Might be unrelated to that probably but still good to have.

eatonjl commented 2 years ago

Thank you for that recommendation! I purposefully left it unpinned. From your documentation, the only issue this creates is that, when the Docker version gets updated, the browser versions will no longer match. Updating the version of Playwright I am using each time it happens will fix that. It is much easier for me to do an update of Playwright and push it to the repo then it will be to go to all my various TeamCity builds and add the new Docker version in them. However, if there are other risks from doing this that the documentation does not state, I would love to know.

mxschmitt commented 2 years ago

(Risks are that we might just change the ubuntu distribution which you are using, since latest can be anything. More risk is that the OS dependencies might be different per version, but if you are using npx playwright install --with-deps then you are covering this edge case.)

eatonjl commented 2 years ago

Thank for sharing that!

eatonjl commented 2 years ago

First off, I want to express how grateful I am in all of you taking time to look into this issue. I have always had quick responses from everyone here. However, I feel like we may be losing cohesiveness on this discussion. You asked for a repo without TeamCity. before I could give it to you, you stated it would be the Docker container that was the issue, so the repo wouldn't matter. I let you know we were using the default Playwright container and you then said it could be an issue with TeamCity before we looked into what the Docker container was doing. I would like to provide you with whatever you need in order to investigate this, but each time I go to provide something I am told that it isn't the issue before I even provide it. Perhaps it would be best if we started from the beginning with this and took a fresh look? The main purpose for this issue being open was to determine why Firefox seemingly handles permissions in the Playwright Docker image differently than the other browsers. I was told It might be due to how Firefox stores its files in the temporary partition. I am hoping for someone from Playwright to look at how Firefox handles the user permissions compared to the others. Would this be possible? And, if there is anything I can provide on my end, I would be happy to do so. I just ask that we fully investigate a step before jumping to another conclusion. Again, thank you for your help!

eatonjl commented 2 years ago

I went through and pinned all my Docker images, as requested.

rwoll commented 2 years ago

Thanks for your patience, and I appreciate you helping us take a step back!

Perhaps it would be best if we started from the beginning with this and took a fresh look?

Per your message above, let's close this copy of the issue for now and start fresh changing one thing at a time. Since you've stated you don't think it has to do with Team City (and we can't debug Team City ourselves), please re-file with a repro that does not use Team City and we can debug from there a step at a time to try to understand the root issue.

When you file the new issue, please reference this issue.

I am hoping for someone from Playwright to look at how Firefox handles the user permissions compared to the others. Would this be possible?

At this point, the most efficient route is to wait on a repro so it's not so open ended of an investigation.

Thanks—and sorry for the shuffling and frustration! 😄

eatonjl commented 2 years ago

Thanks—and sorry for the shuffling and frustration! 😄

No worries! I've been trying to think of how to recreate it locally. It would take spinning up the TeamCity build agent Docker image and then spin up the Playwright Docker image in it on a Linux machine. I am not sure I am going to have the time to set something like that up right now. Considering that the workaround is to add "chown root ." I am going to keep doing that. As I said, this wasn't necessarily asking something to be fixed, but to investigate why Firefox permissions act differently. Should I ever have the time to set up something to recreate it locally, I can reopen this or create a new issue. Than you again for your time and help!