Git Product home page Git Product logo

Comments (23)

inferno-chromium avatar inferno-chromium commented on April 28, 2024

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.

inferno-chromium avatar inferno-chromium commented on April 28, 2024

Another question - How big is your fuzzer zip ?

from clusterfuzz.

kcwu avatar kcwu commented on April 28, 2024

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.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

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.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

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.

kcwu avatar kcwu commented on April 28, 2024

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.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

Are you on Mac or Linux?
I'll see if I can add some logging to make the issue clearer.

from clusterfuzz.

kcwu avatar kcwu commented on April 28, 2024

It's glinux.

from clusterfuzz.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

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.

kcwu avatar kcwu commented on April 28, 2024

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.

charleyw avatar charleyw commented on April 28, 2024

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.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

cc @oliverchang who worked on our emulator for local storage.

from clusterfuzz.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

OK can you post the full output of run_server when this happens please?

from clusterfuzz.

kcwu avatar kcwu commented on April 28, 2024

I retried again and it works now. I will report back if I can reproduce later.

from clusterfuzz.

inferno-chromium avatar inferno-chromium commented on April 28, 2024

yes please.

from clusterfuzz.

charleyw avatar charleyw commented on April 28, 2024
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.

kcwu avatar kcwu commented on April 28, 2024

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.

inferno-chromium avatar inferno-chromium commented on April 28, 2024

@jonathanmetzman - can you see how we can clarify this in documentation based on last comment.

from clusterfuzz.

jonathanmetzman avatar jonathanmetzman commented on April 28, 2024

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.

charleyw avatar charleyw commented on April 28, 2024

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.

inferno-chromium avatar inferno-chromium commented on April 28, 2024

@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.

charleyw avatar charleyw commented on April 28, 2024

@inferno-chromium it works, Thanks.

from clusterfuzz.

lookfwd avatar lookfwd commented on April 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.