aboutsummaryrefslogtreecommitdiffstats
path: root/syz-gce
Commit message (Collapse)AuthorAgeFilesLines
* syz-dash, syz-gce: removeDmitry Vyukov2017-08-024-1282/+0
| | | | This is now superseded by dashboard/app and syz-ci.
* syz-ci: allow to specify cmdline/sysctlsDmitry Vyukov2017-07-171-1/+1
| | | | | Allow to specify per-kernel command line and sysctl values to more closely mimic the target kernel.
* all: use consistent file permissionsDmitry Vyukov2017-07-031-5/+5
| | | | | | | | | | | | | | | | Currently we have unix permissions for new files/dirs hardcoded throughout the code base. Some places use 0644, some - 0640, some - 0600 and a variety of other constants. Introduce osutil.MkdirAll/WriteFile that use the default permissions and use them throughout the code base. This makes permissions consistent and also allows to easily change the permissions later if we change our minds. Also merge pkg/fileutil into pkg/osutil as they become dependent on each other. The line between them was poorly defined anyway as both operate on files.
* syz-dash/dashboard: move from dashboardDmitry Vyukov2017-06-231-1/+1
| | | | | Move the old dashboard API into syz-dash to get it out of the way of the new dashboard.
* pkg/kernel: move partial config functionality into a separate functionDmitry Vyukov2017-06-201-8/+6
| | | | | | Move partial config functionality into BuildWithPartConfig. It is used only for syz-gce which will be removed soon. Provide a better interface for new continuous build system.
* syz-gce: create image dirDmitry Vyukov2017-06-171-1/+1
| | | | kernel.CreateImage does not create output dir.
* vm/gce: accept un-tar-ed imageDmitry Vyukov2017-06-172-107/+11
| | | | | | | | | | vm/gce differs from other VM types in that it accepts image in a weird, GCE-specific format (namely, image named disk.raw is put into .tar.gz file). This makes it impossible to write generic code that creates images for any VM types. Make vm/gce accept just image like e.g. vm/qemu and handle own specifics internally.
* syz-manager/mgrconfig: move sshkey from vm config to manager configDmitry Vyukov2017-06-171-2/+3
| | | | | | | | | | | | | | Sshkey is a property of image, which is in manager config. Move sshkey to the same location as image. The motivation for the move is as follows. Continuous build produces an image and the key, both need to be passed manager instance. Continuous build system should not distinguish different VM types and mess with their configs. NOTE FOR USERS: this breaks manager configs again. Hopefully the last time for now. Docs are updated.
* syz-manager/mgrconfig: remove output paramDmitry Vyukov2017-06-171-1/+0
| | | | | | | It was useful only for vm/local which was removed. The param wasn't documented and if one tries to change it, it will break manager in obscure way (i.e. spurious "test machine is not executing programs" crashes).
* syz-manager/config: rename to syz-manager/mgrconfigDmitry Vyukov2017-06-171-4/+4
| | | | | | | | | | | We have 2 packages with the same name: pkg/config and syz-manager/config. This leads to constant clashes. We either rename one to pkgconfig or another to mgrconfig. This is not good and will become worse when/if we have another program-specific config in a separate package. Rename manager config to mgrconfig. Other program-specific configs can use the same convention in future -- fooconfig.
* all: use osutil.IsExist instead of os.StatDmitry Vyukov2017-06-171-1/+2
|
* pkg/kernel: add an option to provide full config for buildDmitry Vyukov2017-06-152-31/+11
| | | | | Normally config is applied on top of defconfig+kvmconfig. This allows to provide full config that is used unmodified.
* syz-gce: fix manager config generationDmitry Vyukov2017-06-031-3/+4
| | | | gcs_path is now a mandatory parameter.
* vm/gce: accept local imageDmitry Vyukov2017-06-031-30/+3
| | | | | | | | | | Currently gce accepts precreated GCE image name as image config param, while all other VM types accept local file path as image. This makes it impossible to write generic code that works with all VM types, i.e. after building a new image it's unclear if it needs to be uploaded to GCE or not, and what needs to be passed as image in config. Eliminate this difference by making gce accept local image file as well.
* vm: overhaulDmitry Vyukov2017-06-031-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VM infrastructure currently has several problems: - Config struct is complete mess with a superset of params for all VM types - verification of Config is mess spread across several places - there is no place where VM code could do global initialization like creating GCE connection, uploading GCE image to GCS, matching adb devices with consoles, etc - it hard to add private VM implementations such impl would need to add code to config package which would lead to constant merge conflicts - interface for VM implementation is mixed with interface for VM users this does not allow to provide best interface for both of them - there is no way to add common code for all VM implementations This change solves these problems by: - splitting VM interface for users (vm package) and VM interface for VM implementations (vmimpl pacakge), this in turn allows to add common code - adding Pool concept that allows to do global initialization and config checking at the right time - decoupling manager config from VM-specific config each VM type now defines own config Note: manager configs need to be changed after this change: VM-specific parts are moved to own "vm" subobject. Note: this change also drops "local" VM type. Its story was long unclear and there is now syz-stress which solves the same problem.
* pkg/gce: move from gceDmitry Vyukov2017-06-031-1/+1
|
* pkg/log: move from logDmitry Vyukov2017-06-032-2/+2
|
* pkg/hash: move from hashDmitry Vyukov2017-06-031-1/+1
|
* pkg/gcs: add new packageDmitry Vyukov2017-06-031-48/+13
| | | | | Move GCS-related functionality from syz-gce to a separate package.
* pkg/kernel: add new packageDmitry Vyukov2017-06-031-1/+1
| | | | | Move functionality to build kernel/image from syz-gce to a separate package.
* pkg/git: add new packageDmitry Vyukov2017-06-011-45/+4
| | | | | Move few helper git-related functions from syz-gce to a separate pkg/git package.
* config: split and refactorDmitry Vyukov2017-06-011-18/+8
| | | | | | | | | Introduce generic config.Load function that can be reused across multiple programs (syz-manager, syz-gce, etc). Move the generic config functionality to pkg/config package. The idea is to move all helper (non-main) packages to pkg/ dir, because we have more and more of them and they pollute the top dir. Move the syz-manager config parts into syz-manager/config package.
* syz-dash: show username for auth failuresDmitry Vyukov2017-05-061-3/+7
| | | | | Helpful understanding that you signed into a wrong account. Also actuall report incidents.
* syz-gce: allow to disable dashboard patchesDmitry Vyukov2017-05-061-20/+22
| | | | | | | Older kernels will most likely break if we apply some upstream patches to them (most patches won't apply, but some still do). Allow to disable usage of dashboard patches in config for such kernels.
* syz-gce: speedup kernel checkoutDmitry Vyukov2017-05-061-1/+6
| | | | Checkout only single branch with no history.
* Merge pull request #171 from xairy/up-fix-gce-metagenerationAndrey Konovalov2017-05-051-1/+1
|\ | | | | gce: rename MetaGeneration to Metageneration
| * gce: rename MetaGeneration to MetagenerationAndrey Konovalov2017-05-051-1/+1
| |
* | gce: use 'reproduce: true' in manager cfgAndrey Konovalov2017-05-051-0/+1
|/
* syz-gce: don't poll repositories too frequentlyDmitry Vyukov2017-03-111-7/+19
| | | | | | We've hit a situation when syz-manager immidiately exits. This caused too frequent polls and rate limiting errors. Sleep for at least some time if manager exits immidiately.
* syz-gce: allow to specify enabled/disabled syscallsDmitry Vyukov2017-03-051-36/+39
|
* syz-gce: enable ATM/LLC/TIPC in kernel configDmitry Vyukov2017-03-052-0/+26
|
* syz-gce: fix format stringDmitry Vyukov2017-03-051-1/+1
|
* syz-dash: first version of dashboard appDmitry Vyukov2017-02-172-202/+312
| | | | | syz-dash is an appengine app that aggregates crashes from multiple managers. Very early version, still flashing out required functionality.
* prog, sys: add icmp descriptions and checksumAndrey Konovalov2017-02-061-0/+2
|
* csource, syz-gce: regenerate and reformatDmitry Vyukov2017-01-271-0/+1
|
* syz-gce: increase log textarea sizeDmitry Vyukov2017-01-171-1/+1
| | | | | There is nothing else on the syz-gce page, so show more logs.
* syz-gce: run for at least 6 hours instead of 1Dmitry Vyukov2017-01-171-1/+1
| | | | | | Now that syz-gce rebuilds linux kernel, running for 1 hour is too short as build takes up to 40 minutes on a weak VM. Increase the uninterrupted run time to 6 hours.
* syz-gce: recover after git pull errorsDmitry Vyukov2017-01-171-4/+5
| | | | | | | | | | | | | | One of builders got into error loop: Jan 16 20:55:45 syz-gce-next syz-gce[15380]: 2017/01/16 20:55:45 failed to run git [pull]: exit status 128 Jan 16 20:55:45 syz-gce-next syz-gce[15380]: error: Pull is not possible because you have unmerged files. Jan 16 20:55:45 syz-gce-next syz-gce[15380]: hint: Fix them up in the work tree, and then use 'git add/rm <file>' Jan 16 20:55:45 syz-gce-next syz-gce[15380]: hint: as appropriate to mark resolution and make a commit. Jan 16 20:55:45 syz-gce-next syz-gce[15380]: fatal: Exiting because of an unresolved conflict. No local changes were made to the repo. It was somehow caused by too many changed files or something. Make pull more robust: in case of any errors re-clone the repo.
* syz-gce: fix log outputDmitry Vyukov2017-01-171-1/+1
| | | | In local build mode lastImageUpdated is not relevant, don't print it.
* syz-gce: support continous buildDmitry Vyukov2017-01-163-33/+848
| | | | | Add "local" mode in which syz-gce clones, builds and monitors for updates a linux kernel repo.
* syz-gce: remove flags used for development/testingDmitry Vyukov2017-01-131-7/+3
|
* syz-manager, syz-gce: output 20 log lines instead of 50 in web UIDmitry Vyukov2017-01-091-1/+1
| | | | 50 lines take too much space, there is scroll bar if necessary.
* syz-hub: add programDmitry Vyukov2016-11-171-0/+4
| | | | syz-hub is used to exchange programs between syz-managers.
* vm/gce: don't require ssh key for GCE-compatible imagesDmitry Vyukov2016-11-171-2/+4
| | | | | If an image supports all GCE fanciness, we don't need a separate ssh key for it. It should accept the instance private key that we specify during VM creation.
* syz-gce: proxy manager http requestsDmitry Vyukov2016-11-162-24/+69
| | | | | Firewall may restrict access to manager, proxy traffic manager requests. Also choose manager port automatically.
* syz-gce,syz-manager: add name config parameterDmitry Vyukov2016-11-162-4/+8
| | | | | | Name is used for identification on web ui and included in gce instance names (so that several managers can coexist in a single project).
* syz-gce: fix buildDmitry Vyukov2016-11-111-4/+4
| | | | | Storage API seems to have changed. Switch to the new API.
* syz-gce, syz-manager: save image tag in syz-gce, show in syz-managerDmitry Vyukov2016-10-102-0/+23
|
* syz-manager, syz-gce: show latest log messages in log textareaDmitry Vyukov2016-10-101-1/+5
|
* syz-gce: add actual continous testing logicDmitry Vyukov2016-10-101-39/+151
| | | | | | | | Implement actual continous testing loop: syz-gce runs syz-manager on GCE in a continous loop handling image/syzkaller updates. It downloads test image from GCS, downloads and builds syzkaller, then starts syz-manager and pulls for image/syzkaller source updates. If image/syzkaller changes, it stops syz-manager and starts from scratch.