This job view page is being replaced by Spyglass soon. Check out the new job view.
ResultFAILURE
Tests 1 failed / 6 succeeded
Started2019-07-18 11:15
Elapsed23m45s
Revision
Buildergke-prow-ssd-pool-1a225945-l708
links{u'resultstore': {u'url': u'https://source.cloud.google.com/results/invocations/4355dd93-2acc-43ea-aa2b-275d3cd25b1e/targets/test'}}
pod32cfdc1e-a94d-11e9-97aa-4a95e4f58ae7
resultstorehttps://source.cloud.google.com/results/invocations/4355dd93-2acc-43ea-aa2b-275d3cd25b1e/targets/test
infra-commit10e94cdb0
job-versionv1.16.0-alpha.1.51+ce80aeaac595e8
pod32cfdc1e-a94d-11e9-97aa-4a95e4f58ae7
revisionv1.16.0-alpha.1.51+ce80aeaac595e8

Test Failures


Up 13m45s

error creating cluster: error during gcloud container clusters create --quiet --project=k8s-jkns-gke-soak --region=us-central1 --machine-type=n1-standard-2 --image-type=gci --num-nodes=3 --network=bootstrap-e2e --cluster-version=1.16.0-alpha.1.51+ce80aeaac595e8 bootstrap-e2e: exit status 1
				from junit_runner.xml

Filter through log files | View test history on testgrid


Show 6 Passed Tests

Error lines from build-log.txt

... skipping 12 lines ...
I0718 11:15:13.499] process 44 exited with code 0 after 0.0m
I0718 11:15:13.500] Will upload results to gs://kubernetes-jenkins/logs using pr-kubekins@kubernetes-jenkins-pull.iam.gserviceaccount.com
I0718 11:15:13.500] Root: /workspace
I0718 11:15:13.500] cd to /workspace
I0718 11:15:13.501] Configure environment...
I0718 11:15:13.501] Call:  git show -s --format=format:%ct HEAD
W0718 11:15:13.505] fatal: Not a git repository (or any of the parent directories): .git
I0718 11:15:13.506] process 56 exited with code 128 after 0.0m
W0718 11:15:13.506] Unable to print commit date for HEAD
I0718 11:15:13.507] Call:  gcloud auth activate-service-account --key-file=/etc/service-account/service-account.json
W0718 11:15:14.041] Activated service account credentials for: [pr-kubekins@kubernetes-jenkins-pull.iam.gserviceaccount.com]
I0718 11:15:14.385] process 57 exited with code 0 after 0.0m
I0718 11:15:14.385] Call:  gcloud config get-value account
... skipping 421 lines ...
W0718 11:17:46.216] WARNING: Starting in 1.12, new clusters will not have a client certificate issued. You can manually enable (or disable) the issuance of the client certificate using the `--[no-]issue-client-certificate` flag.
W0718 11:17:46.217] WARNING: Starting in 1.12, default node pools in new clusters will have their legacy Compute Engine instance metadata endpoints disabled by default. To create a cluster with legacy instance metadata endpoints disabled in the default node pool, run `clusters create` with the flag `--metadata disable-legacy-endpoints=true`.
W0718 11:17:46.218] WARNING: The Pod address range limits the maximum size of the cluster. Please refer to https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr to learn how to optimize IP address allocation.
W0718 11:17:46.219] This will disable the autorepair feature for nodes. Please see https://cloud.google.com/kubernetes-engine/docs/node-auto-repair for more information on node autorepairs.
W0718 11:17:50.160] Creating cluster bootstrap-e2e in us-central1...
W0718 11:30:35.806] ..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done.
W0718 11:30:36.002] ERROR: (gcloud.container.clusters.create) Operation [<Operation
W0718 11:30:36.003]  clusterConditions: []
W0718 11:30:36.003]  detail: u'All cluster resources were brought up, but the cluster API is reporting that: component "kube-apiserver" from endpoint "gke-aa05f252104149bbefa5-b6b2" is unhealthy.'
W0718 11:30:36.003]  endTime: u'2019-07-18T11:30:32.763293334Z'
W0718 11:30:36.003]  name: u'operation-1563448670099-84508f3d'
W0718 11:30:36.003]  nodepoolConditions: []
W0718 11:30:36.004]  operationType: OperationTypeValueValuesEnum(CREATE_CLUSTER, 1)
W0718 11:30:36.004]  selfLink: u'https://test-container.sandbox.googleapis.com/v1/projects/732199677957/locations/us-central1/operations/operation-1563448670099-84508f3d'
W0718 11:30:36.004]  startTime: u'2019-07-18T11:17:50.099477035Z'
W0718 11:30:36.004]  status: StatusValueValuesEnum(DONE, 3)
W0718 11:30:36.005]  statusMessage: u'All cluster resources were brought up, but the cluster API is reporting that: component "kube-apiserver" from endpoint "gke-aa05f252104149bbefa5-b6b2" is unhealthy.'
W0718 11:30:36.005]  targetLink: u'https://test-container.sandbox.googleapis.com/v1/projects/732199677957/locations/us-central1/clusters/bootstrap-e2e'
W0718 11:30:36.005]  zone: u'us-central1'>] finished with error: All cluster resources were brought up, but the cluster API is reporting that: component "kube-apiserver" from endpoint "gke-aa05f252104149bbefa5-b6b2" is unhealthy.
W0718 11:30:36.077] 2019/07/18 11:30:36 process.go:155: Step 'gcloud container clusters create --quiet --project=k8s-jkns-gke-soak --region=us-central1 --machine-type=n1-standard-2 --image-type=gci --num-nodes=3 --network=bootstrap-e2e --cluster-version=1.16.0-alpha.1.51+ce80aeaac595e8 bootstrap-e2e' finished in 12m50.597728509s
W0718 11:30:36.676] 2019/07/18 11:30:36 process.go:153: Running: bash -c 
W0718 11:30:36.677] function log_dump_custom_get_instances() {
W0718 11:30:36.677]   if [[ $1 == "master" ]]; then
W0718 11:30:36.677]     return 0
W0718 11:30:36.677]   fi
... skipping 12 lines ...
I0718 11:30:36.779] Dumping logs from master locally to '/workspace/_artifacts'
I0718 11:30:36.779] No masters found?
I0718 11:30:36.780] Dumping logs from nodes locally to '/workspace/_artifacts'
I0718 11:30:36.780] Dumping logs for nodes provided by log_dump_custom_get_instances() function
W0718 11:30:38.106] WARNING: --filter : operator evaluation is changing for consistency across Google APIs.  metadata.created-by:*zones/us-central1-a/instanceGroupManagers/gke-bootstrap-e2e-default-pool-6f89158e-grp currently matches but will not match in the near future.  Run `gcloud topic filters` for details.
I0718 11:31:37.258] Changing logfiles to be world-readable for download
W0718 11:31:37.809] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:31:39.009] Changing logfiles to be world-readable for download
W0718 11:31:39.579] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:31:39.867] Changing logfiles to be world-readable for download
W0718 11:31:40.428] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:31:40.918] Changing logfiles to be world-readable for download
I0718 11:31:41.230] Changing logfiles to be world-readable for download
I0718 11:31:41.324] Changing logfiles to be world-readable for download
I0718 11:31:41.407] Changing logfiles to be world-readable for download
I0718 11:31:41.427] Changing logfiles to be world-readable for download
I0718 11:31:41.537] Changing logfiles to be world-readable for download
W0718 11:31:41.725] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:42.011] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:42.077] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:42.105] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:42.136] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:42.245] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:43.425] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:45.213] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:46.075] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.460] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.798] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.908] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.931] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.932] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:47.999] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:49.056] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:50.850] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:51.697] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.254] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.571] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.729] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.752] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.761] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:53.770] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:54.736] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:56.530] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:57.403] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.020] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.343] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.495] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.556] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.567] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:31:59.603] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:00.444] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:02.195] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:03.115] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:04.850] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:05.210] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:05.299] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:05.356] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:05.439] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:05.506] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:06.152] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:06.253] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-6f89158e-ngph
W0718 11:32:06.780] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:07.418] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:07.839] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:07.939] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-6f89158e-zj3f
W0718 11:32:08.586] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:08.831] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:08.932] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-21ba762c-ns5k
W0718 11:32:09.281] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:09.537] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:10.205] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:10.632] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:10.733] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-6f89158e-6hdp
W0718 11:32:11.147] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:11.251] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-85c5ade4-tswc
W0718 11:32:11.352] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:11.396] ERROR: (gcloud.compute.ssh) could not parse resource []
W0718 11:32:11.413] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:11.514] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-85c5ade4-rs23
I0718 11:32:11.515] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-21ba762c-g9dq
I0718 11:32:11.515] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-85c5ade4-h6hj
W0718 11:32:11.616] ERROR: (gcloud.compute.ssh) could not parse resource []
I0718 11:32:11.717] Copying 'kern.log kube-proxy.log fluentd.log node-problem-detector.log kubelet.cov docker/log kubelet.log supervisor/supervisord.log supervisor/kubelet-stdout.log supervisor/kubelet-stderr.log supervisor/docker-stdout.log supervisor/docker-stderr.log' from gke-bootstrap-e2e-default-pool-21ba762c-pq5b
W0718 11:32:11.818] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.067] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.296] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.406] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.462] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.683] ERROR: (gcloud.compute.instances.get-serial-port-output) could not parse resource []
W0718 11:32:12.967] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.145] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.390] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.467] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.565] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.608] ERROR: (gcloud.compute.scp) could not parse resource []
W0718 11:32:13.686] Project: k8s-jkns-gke-soak
W0718 11:32:13.687] Network Project: k8s-jkns-gke-soak
W0718 11:32:13.687] Zone: 
W0718 11:32:16.538] INSTANCE_GROUPS=
W0718 11:32:16.538] NODE_NAMES=
W0718 11:32:16.539] 2019/07/18 11:32:16 process.go:155: Step 'bash -c 
... skipping 21 lines ...
W0718 11:37:15.445] 2019/07/18 11:37:15 process.go:155: Step 'gcloud compute firewall-rules describe e2e-ports-6f89158e --project=k8s-jkns-gke-soak --format=value(name)' finished in 913.645054ms
W0718 11:37:15.445] 2019/07/18 11:37:15 gke.go:631: Found no rules for firewall 'e2e-ports-6f89158e', assuming resources are clean
W0718 11:37:16.340] 2019/07/18 11:37:16 process.go:153: Running: gcloud compute networks delete -q bootstrap-e2e --project=k8s-jkns-gke-soak
W0718 11:38:46.524] Deleted [https://www.googleapis.com/compute/v1/projects/k8s-jkns-gke-soak/global/networks/bootstrap-e2e].
W0718 11:38:46.647] 2019/07/18 11:38:46 process.go:155: Step 'gcloud compute networks delete -q bootstrap-e2e --project=k8s-jkns-gke-soak' finished in 1m30.306583239s
W0718 11:38:46.648] 2019/07/18 11:38:46 process.go:96: Saved XML output to /workspace/_artifacts/junit_runner.xml.
W0718 11:38:48.321] 2019/07/18 11:38:48 main.go:316: Something went wrong: starting e2e cluster: error creating cluster: error during gcloud container clusters create --quiet --project=k8s-jkns-gke-soak --region=us-central1 --machine-type=n1-standard-2 --image-type=gci --num-nodes=3 --network=bootstrap-e2e --cluster-version=1.16.0-alpha.1.51+ce80aeaac595e8 bootstrap-e2e: exit status 1
W0718 11:38:48.324] Traceback (most recent call last):
W0718 11:38:48.324]   File "/workspace/./test-infra/jenkins/../scenarios/kubernetes_e2e.py", line 778, in <module>
W0718 11:38:48.325]     main(parse_args())
W0718 11:38:48.325]   File "/workspace/./test-infra/jenkins/../scenarios/kubernetes_e2e.py", line 626, in main
W0718 11:38:48.325]     mode.start(runner_args)
W0718 11:38:48.325]   File "/workspace/./test-infra/jenkins/../scenarios/kubernetes_e2e.py", line 262, in start
W0718 11:38:48.325]     check_env(env, self.command, *args)
W0718 11:38:48.325]   File "/workspace/./test-infra/jenkins/../scenarios/kubernetes_e2e.py", line 111, in check_env
W0718 11:38:48.325]     subprocess.check_call(cmd, env=env)
W0718 11:38:48.326]   File "/usr/lib/python2.7/subprocess.py", line 186, in check_call
W0718 11:38:48.326]     raise CalledProcessError(retcode, cmd)
W0718 11:38:48.326] subprocess.CalledProcessError: Command '('kubetest', '--dump=/workspace/_artifacts', '--gcp-service-account=/etc/service-account/service-account.json', '--up', '--down', '--test', '--deployment=gke', '--provider=gke', '--cluster=bootstrap-e2e', '--gcp-network=bootstrap-e2e', '--check-leaked-resources', '--extract=ci-cross/latest', '--gcp-cloud-sdk=gs://cloud-sdk-testing/ci/staging', '--gcp-node-image=gci', '--gcp-region=us-central1', '--gke-environment=test', '--test_args=--gce-multizone=true --gce-multimaster=true --ginkgo.focus=\\[Serial\\]|\\[Disruptive\\] --ginkgo.skip=\\[Flaky\\]|\\[Feature:.+\\] --minStartupPods=8', '--timeout=500m')' returned non-zero exit status 1
E0718 11:38:48.333] Command failed
I0718 11:38:48.334] process 259 exited with code 1 after 23.5m
E0718 11:38:48.334] FAIL: ci-kubernetes-e2e-gke-regional-serial
I0718 11:38:48.334] Call:  gcloud auth activate-service-account --key-file=/etc/service-account/service-account.json
W0718 11:38:48.872] Activated service account credentials for: [pr-kubekins@kubernetes-jenkins-pull.iam.gserviceaccount.com]
I0718 11:38:48.923] process 3782 exited with code 0 after 0.0m
I0718 11:38:48.923] Call:  gcloud config get-value account
I0718 11:38:49.272] process 3794 exited with code 0 after 0.0m
I0718 11:38:49.272] Will upload results to gs://kubernetes-jenkins/logs using pr-kubekins@kubernetes-jenkins-pull.iam.gserviceaccount.com
I0718 11:38:49.272] Upload result and artifacts...
I0718 11:38:49.273] Gubernator results at https://gubernator.k8s.io/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/1151812605040398337
I0718 11:38:49.273] Call:  gsutil ls gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/1151812605040398337/artifacts
W0718 11:38:51.004] CommandException: One or more URLs matched no objects.
E0718 11:38:51.150] Command failed
I0718 11:38:51.150] process 3806 exited with code 1 after 0.0m
W0718 11:38:51.150] Remote dir gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/1151812605040398337/artifacts not exist yet
I0718 11:38:51.151] Call:  gsutil -m -q -o GSUtil:use_magicfile=True cp -r -c -z log,txt,xml /workspace/_artifacts gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/1151812605040398337/artifacts
I0718 11:38:53.189] process 3948 exited with code 0 after 0.0m
I0718 11:38:53.190] Call:  git rev-parse HEAD
W0718 11:38:53.194] fatal: Not a git repository (or any of the parent directories): .git
E0718 11:38:53.195] Command failed
I0718 11:38:53.195] process 4499 exited with code 128 after 0.0m
I0718 11:38:53.195] Call:  git rev-parse HEAD
I0718 11:38:53.199] process 4500 exited with code 0 after 0.0m
I0718 11:38:53.199] Call:  gsutil stat gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/jobResultsCache.json
I0718 11:38:54.414] process 4501 exited with code 0 after 0.0m
I0718 11:38:54.415] Call:  gsutil -q cat 'gs://kubernetes-jenkins/logs/ci-kubernetes-e2e-gke-regional-serial/jobResultsCache.json#1563442551867902'
... skipping 8 lines ...