Comments (23)
can you refresh the http://localhost:9000/fuzzers
page and retry. can you reliably reproduce this ? also can you try ctrl+c on the run_server and restarting the server again to reproduce ?
from clusterfuzz.
Another question - How big is your fuzzer zip ?
from clusterfuzz.
Refreshing /jobs page and restarting the server don't help. And yes, always reproducible --- I haven't ever successfully uploaded fuzzers. The zip size is 12MB.
from clusterfuzz.
To clarify, @kcwu are you trying to upload a custom build to the job?
You aren't trying to upload a fuzzer to the fuzzers page right?
from clusterfuzz.
Also, where did you get your copy of ClusterFuzz? Did you download the release? Or did you clone the repo (if you cloned it, can you post the output of git rev-parse HEAD
so we can know what commit you are on).
from clusterfuzz.
I clone the clusterfuzz repo (c44bf3f). I re-run
local/install_deps.bash
source ENV/bin/activate
python butler.py run_server --bootstrap
still doesn't work for me.
Yes, I upload a custom build to the job, not fuzzer page.
from clusterfuzz.
Are you on Mac or Linux?
I'll see if I can add some logging to make the issue clearer.
from clusterfuzz.
It's glinux.
from clusterfuzz.
Can you try applying this patch and uploading again?
Sorry to ask you to do so many things. But I've tried to repro this in anyway I could think of and i haven't succeeded.
from clusterfuzz.
https://github.com/google/clusterfuzz/blob/master/src/python/google_cloud_utils/storage.py#L491
gcs_object = get(get_cloud_storage_file_path(bucket, object_path))
get('gs://test-blobs-bucket/c0106556-85a2-4b79-a8ce-f72394502e32')
returns None
My ./local/storage/local_gcs/test-blobs-bucket
is an empty folder.
from clusterfuzz.
Hi there, i have the same problem.
I'm trying to create a new libfuzzer_asan job in job page, and upload failed.
from clusterfuzz.
cc @oliverchang who worked on our emulator for local storage.
from clusterfuzz.
OK can you post the full output of run_server when this happens please?
from clusterfuzz.
I retried again and it works now. I will report back if I can reproduce later.
from clusterfuzz.
yes please.
from clusterfuzz.
Running: ./polymer_bundler.bash
| Building templates for App Engine...
| Finished building templates
Created symlink: source: /root/clusterfuzz-base/clusterfuzz/local/storage/local_gcs, target /root/clusterfuzz-base/clusterfuzz/src/appengine/local_gcs.
Running: /usr/lib/google-cloud-sdk/bin/dev_appserver.py -A test-clusterfuzz --skip_sdk_update_check=1 --storage_path=local/storage --port=9000 --host=10.247.228.138 --admin_port=9002 --datastore_emulator_port=9004 --require_indexes=true --log_level=info --dev_appserver_log_level=info --support_datastore_emulator=true --env_var LOCAL_DEVELOPMENT=True --env_var PUBSUB_EMULATOR_HOST=localhost:9006 --env_var LOCAL_GCS_BUCKETS_PATH=local_gcs --env_var LOCAL_GCS_SERVER_HOST=http://localhost:9008 src/appengine src/appengine/cron-service.yaml
| INFO 2019-02-12 09:32:53,957 devappserver2.py:224] Using Cloud Datastore Emulator.
| We are gradually rolling out the emulator as the default datastore implementation of dev_appserver.
| If broken, you can temporarily disable it by --support_datastore_emulator=False
| Read the documentation: https://cloud.google.com/appengine/docs/standard/python/tools/migrate-cloud-datastore-emulator
| Help us validate that the feature is ready by taking this survey: https://goo.gl/forms/UArIcs8K9CUSCm733
| Report issues at: https://issuetracker.google.com/issues/new?component=187272
|
| INFO 2019-02-12 09:32:53,989 devappserver2.py:278] Skipping SDK update check.
| INFO 2019-02-12 09:32:54,054 datastore_emulator.py:155] Starting Cloud Datastore emulator at: http://localhost:9004
| Exception in thread Thread-1:
| Traceback (most recent call last):
| File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
| self.run()
| File "/usr/lib/python2.7/threading.py", line 754, in run
| self.__target(*self.__args, **self.__kwargs)
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 495, in _launch
| else 'SCATTERED'))
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/cloud_emulators/cloud_emulator_manager.py", line 123, inLaunch
| emulator_cmd=self._cmd, start_options=options, silent=silent)
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/cloud_emulators/datastore/datastore_emulator.py", line 134, in __init__
| if not self._WaitForStartup(deadline):
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/cloud_emulators/datastore/datastore_emulator.py", line 158, in _WaitForStartup
| response, _ = self._http.request(self._host)
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1626, in request
| (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1368, in _request
| (response, content) = self._conn_request(conn, request_uri, method, body, headers)
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 1288, in _conn_request
| conn.connect()
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/__init__.py", line 938, in connect
| self.sock.connect((self.host, self.port) + sa[2:])
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/socks.py", line 415, in connect
| self.__negotiatehttp(destpair[0], destpair[1])
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/httplib2/httplib2/socks.py", line 381, in __negotiatehttp
| raise HTTPError((statuscode, statusline[2]))
| HTTPError: (502, 'Connection refused')
|
| INFO 2019-02-12 09:32:54,805 api_server.py:275] Starting API server at: http://localhost:36500
| INFO 2019-02-12 09:32:54,810 api_server.py:265] Starting gRPC API server at: http://localhost:45223
| INFO 2019-02-12 09:32:54,882 dispatcher.py:256] Starting module "default" running at: http://10.247.228.138:9000
| INFO 2019-02-12 09:32:54,955 dispatcher.py:256] Starting module "cron-service" running at: http://10.247.228.138:9001
| INFO 2019-02-12 09:32:54,955 admin_server.py:150] Starting admin server at: http://localhost:9002
| INFO 2019-02-12 09:33:24,426 instance.py:294] Instance PID: 31221
| INFO 2019-02-12 09:33:25,498 module.py:861] default: "GET /_ah/start HTTP/1.1" 404 52
| INFO 2019-02-12 09:33:25,549 module.py:861] default: "GET / HTTP/1.1" 302 -
| INFO 2019-02-12 09:33:26,131 helpers.py:172] ClusterFuzz: View ([email protected]): Testcases.
| INFO 2019-02-12 09:33:26,434 module.py:861] default: "GET /testcases HTTP/1.1" 200 1211238
| INFO 2019-02-12 09:33:27,147 module.py:861] default: "GET /favicon/favicon-32x32.png?v=A0RYylnML6 HTTP/1.1" 304 -
| INFO 2019-02-12 09:33:27,180 module.py:861] default: "GET /favicon/favicon-16x16.png?v=A0RYylnML6 HTTP/1.1" 304 -
| INFO 2019-02-12 09:33:31,303 helpers.py:172] ClusterFuzz: View ([email protected]): Jobs.
| INFO 2019-02-12 09:33:31,592 module.py:861] default: "GET /jobs HTTP/1.1" 200 1185615
| INFO 2019-02-12 09:33:32,153 module.py:861] default: "GET /favicon/favicon-32x32.png?v=A0RYylnML6 HTTP/1.1" 304 -
| INFO 2019-02-12 09:33:32,180 module.py:861] default: "GET /favicon/favicon-16x16.png?v=A0RYylnML6 HTTP/1.1" 304 -
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "src/local/butler/run_server.py", line 106, in trigger
response = urllib2.urlopen(request, timeout=request_timeout)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 502: Connection refused
| ERROR 2019-02-12 09:34:17,859 base_handler.py:198] Failed to upload.
| Traceback (most recent call last):
| File "/usr/lib/google-cloud-sdk/platform/google_appengine/lib/webapp2-2.3/webapp2.py", line 545, in dispatch
| return method(*args, **kwargs)
| File "/root/clusterfuzz-base/clusterfuzz/src/appengine/libs/handler.py", line 286, in wrapper
| return func(self, *args, **kwargs)
| File "/root/clusterfuzz-base/clusterfuzz/src/appengine/libs/handler.py", line 413, in wrapper
| return func(self, *args, **kwargs)
| File "/root/clusterfuzz-base/clusterfuzz/src/appengine/handlers/jobs.py", line 126, in post
| blob_info = self.get_upload()
| File "/root/clusterfuzz-base/clusterfuzz/src/appengine/handlers/base_handler.py", line 248, in get_upload
| raise helpers.EarlyExitException('Failed to upload.', 500)
| EarlyExitException: Failed to upload.
| INFO 2019-02-12 09:34:17,992 module.py:861] default: "POST /update-job HTTP/1.1" 500 903846
| INFO 2019-02-12 09:34:18,378 module.py:861] default: "GET /favicon/favicon-32x32.png?v=A0RYylnML6 HTTP/1.1" 304 -
| INFO 2019-02-12 09:34:18,406 module.py:861] default: "GET /favicon/favicon-16x16.png?v=A0RYylnML6 HTTP/1.1" 304 -
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 754, in run
self.__target(*self.__args, **self.__kwargs)
File "src/local/butler/run_server.py", line 106, in trigger
response = urllib2.urlopen(request, timeout=request_timeout)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 502: Connection refused
Here the log when when i try to add job in jobs page
from clusterfuzz.
I found why I failed.
Although the web ui is at http://localhost:9000/, the browser will upload to http://localhost:9008. Last time, I access the web ui via port forwarding and only port 9000 is forwarded and thus upload failed.
Forwarding port 9008 as well resolved my issue.
from clusterfuzz.
@jonathanmetzman - can you see how we can clarify this in documentation based on last comment.
from clusterfuzz.
Here the log when when i try to add job in jobs page
@charleyw Are you also uploading to a dev server running on another machine?
from clusterfuzz.
Here the log when when i try to add job in jobs page
@charleyw Are you also uploading to a dev server running on another machine?
yes, the dev server running on a linux machine, i'm using another windows machine
from clusterfuzz.
@charleyw - Can you try to enable other ports as mentioned in #178 doc change and see if things work for you. Then we can close this issue.
from clusterfuzz.
@inferno-chromium it works, Thanks.
from clusterfuzz.
Note that if you're e.g. in AWS, you will have to open port in AWS console, make the emulator listen to every host (kill old gcs
if it's running) and change the LOCAL_GCS_SERVER_HOST
value in src/local/butler/constants.py e.g.
diff --git a/local/emulators/gcs.go b/local/emulators/gcs.go
index d2af8a18..fb735030 100644
--- a/local/emulators/gcs.go
+++ b/local/emulators/gcs.go
@@ -254,5 +254,5 @@ func main() {
flag.Parse()
http.HandleFunc("/", handler)
- http.ListenAndServe(fmt.Sprintf("localhost:%d", port), nil)
+ http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
}
diff --git a/src/local/butler/constants.py b/src/local/butler/constants.py
index 87d84b30..68d75e8a 100644
--- a/src/local/butler/constants.py
+++ b/src/local/butler/constants.py
@@ -70,4 +70,4 @@ PUBSUB_EMULATOR_PORT = 9006
PUBSUB_EMULATOR_HOST = 'localhost:' + str(PUBSUB_EMULATOR_PORT)
LOCAL_GCS_SERVER_PORT = 9008
-LOCAL_GCS_SERVER_HOST = 'http://localhost:' + str(LOCAL_GCS_SERVER_PORT)
+LOCAL_GCS_SERVER_HOST = 'http://<my-public-ip>:' + str(LOCAL_GCS_SERVER_PORT)
from clusterfuzz.
Related Issues (20)
- Fluentd install in docker image is broken HOT 4
- Inputs for Progression Task failing because they are over 2 GB HOT 1
- No stats since September HOT 4
- Question about Running Bots on Self-Hosted Kubernetes Cluster: Preemptible vs. Non-Preemptible? HOT 2
- Error creating uworker_input in corpus_pruning_task
- Consider using ARM hardware for Memory Tagging and for testing of ARM-specific code HOT 1
- Handle upgrades in new execution model
- Ensure batch jobs are not created for Mac HOT 1
- ./build.sh for docker images fails locally because of keyboard-configuration HOT 5
- Mitigate too many jobs in Fuzzer
- Centipede integration tests spuriously failing HOT 2
- Local mode binds to 0.0.0.0? HOT 1
- MSAN build of v8 in CF is producing cycles leading to spurious crashes HOT 5
- Ensure variant task isn't run with jobs that are disabled.
- Deduplicate TSAN false positives
- Rate limit testcase creation
- Dont defer analyze task
- Please revert/fix/or finish https://github.com/google/clusterfuzz/commit/b38691b82ea080c2309588a72f797609779c3de5 HOT 3
- Make archive code handle non-zips for custom builds.
- Investigate why some bugs aren't filed for uploaded testcases
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clusterfuzz.