smartcontractkit / smartcontractkit/chainlink
[NODE] <Suspended Jobs>
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 8.2k
- Forks
- 2k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 202
Description
Description
I am operating a chainlink node and running custom jobs, which execute properly and return values to chain, but say Suspended as their status even after returning to chain.
Basic Information
[replace this line with basic information about the issue you are experiencing, including but not limited to all relevant logs and any other relevant information, such as if you are using a Docker container to run the node, job specification, oracle contract address, transaction IDs, etc.]
- Network: Goerli
- Blockchain Client: Infura v3
- Go Version: N/A
- Operating System: macOS Big Sur
- Commit: 850acc7cfade39c4508afa9d120b0da630a81ef7
- Hosting Provider: AWS Postgresql
- Startup Command: docker run -p 6688:6688 -v ~/.chainlink-goerli:/chainlink -it --env-file=.env smartcontract/chainlink:1.7.0-root local n
Environment Variables
[replace this line with the output of the environment variables when running the node in debug mode]
Steps to Reproduce
Make calls to chainlink node using this Job toml:
type = "directrequest"
schemaVersion = 1
name = "validate_full_stack_operator"
externalJobID = "64ba2123-3039-4d38-bad4-02b48eeb6dfa"
maxTaskDuration = "0s"
contractAddress = "0xF1a252307Ff9F3fbB9598c9a181385122948b8Ae"
evmChainID = "5"
minContractPaymentLinkJuels = "0"
observationSource = """
decode_log [type=ethabidecodelog
abi="OracleRequest(bytes32 indexed specId, address requester, bytes32 requestId, uint256 payment, address
callbackAddr, bytes4 callbackFunctionId, uint256 cancelExpiration, uint256 dataVersion, bytes data)"
data="$(jobRun.logData)"
topics="$(jobRun.logTopics)"]
decode_cbor [type=cborparse data="$(decode_log.data)"]
ds [type="http"
method=POST
url="https://399d-195-250-172-101.eu.ngrok.io/val"
requestData="{\"job_run_id\": $(jobSpec.externalJobID), \"data\": {\"block_num\": $(decode_cbor.block_num),
\"offer_id\": $(decode_cbor.offer_id)}}"
allowUnrestrictedNetworkAccess=true
]
parse [type=jsonparse path="data,success_count" data="$(ds)"]
encode_data [type="ethabiencode" abi="(bytes32 requestId, uint256 _verification)" data="{ \"requestId\":
$(decode_log.requestId), \"_verification\": $(parse) }"]
encode_tx [type="ethabiencode"
abi="fulfillOracleRequest2(bytes32 requestId, uint256 payment, address callbackAddress, bytes4
callbackFunctionId, uint256 expiration, bytes calldata data)"
data="{\"requestId\": $(decode_log.requestId), \"payment\": $(decode_log.payment), \"callbackAddress\":
$(decode_log.callbackAddr), \"callbackFunctionId\": $(decode_log.callbackFunctionId), \"expiration\":
$(decode_log.cancelExpiration), \"data\": $(encode_data)}"
]
submit_tx [type="ethtx" to="0xF1a252307Ff9F3fbB9598c9a181385122948b8Ae" data="$(encode_tx)"]
decode_log -> decode_cbor -> ds -> parse -> encode_data -> encode_tx -> submit_tx
"""
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the supplied directrequest Job TOML and the node launched by the Docker command, then inspect how this job's execution and returned transaction are represented in the node. Reproduce the request on Goerli with the listed commit and collect the missing logs and environment details. Done means a successfully returning job is no longer shown as Suspended, with a test or clear reproduction confirming the status transition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go, postgresql
- Domain
- backend, blockchain
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100