I guess I'd need more context to answer that. Have you checked the JM logs
for more details?

On Thu, Dec 23, 2021 at 9:01 AM Lior Liviev <lior.liv...@earnix.com> wrote:

> Is there any reason I'm getting "Could not execute application" after I
> put the Jar in /lib?
> ------------------------------
> *From:* David Morávek <d...@apache.org>
> *Sent:* Wednesday, December 22, 2021 2:04 PM
> *To:* Lior Liviev <lior.liv...@earnix.com>
> *Cc:* user <user@flink.apache.org>
> *Subject:* Re: Avoiding Dynamic Classloading for User Code
>
>
> *CAUTION*: external source
> 1. Yes, I'm not aware of a way to avoid it right now when you're
> submitting job via REST API.
> 2. Hopefully not, the classes should be always loaded from the parent
> loader if they can be found on classpath ... but as I've told you before,
> this is a hacky solution which is healing symptoms instead of addressing
> the cause and definitely not a recommended way to submit jobs
>
> D.
>
> On Wed, Dec 22, 2021 at 12:58 PM Lior Liviev <lior.liv...@earnix.com>
> wrote:
>
> Hello David,
>
> I have some questions regarding our conversation:
>
>    1. When I put the JAR in $FLINK/lib, do I need to use your REST API to
>    load it?
>    2. If I have my JAR in the folder AND I load same JAR via REST API,
>    will I run into problems? (class loading strategy is set to parent-first)
>
> ------------------------------
> *From:* David Morávek <d...@apache.org>
> *Sent:* Tuesday, December 21, 2021 6:53 PM
> *To:* Lior Liviev <lior.liv...@earnix.com>
> *Cc:* user <user@flink.apache.org>
> *Subject:* Re: Avoiding Dynamic Classloading for User Code
>
>
> *CAUTION*: external source
> "+ *setting class-loading strategy to parent-first *could" ... otherwise
> the classes will be always loaded from the jar provided via the REST API
>
> On Tue, Dec 21, 2021 at 5:46 PM Lior Liviev <lior.liv...@earnix.com>
> wrote:
>
> So again, after putting the jar in that folder I don’t need to configure
> anything else?
>
> Get Outlook for iOS
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Fo0ukef&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=jLI9gIYxxyCOFZtEIs8Ytp84XDUKznjfXxteVNKX8mo%3D&reserved=0>
> ------------------------------
> *From:* David Morávek <d...@apache.org>
> *Sent:* Tuesday, December 21, 2021 6:39:10 PM
> *To:* Lior Liviev <lior.liv...@earnix.com>
> *Cc:* user <user@flink.apache.org>
> *Subject:* Re: Avoiding Dynamic Classloading for User Code
>
>
> *CAUTION*: external source
> hmm, with this approach I can only think about not really nice
> solutions... I guess putting a jar into `/lib` folder + setting
> class-loading strategy to parent-first could do the trick (load everything
> in the "main" class loader), but then using this endpoint / deployment path
> for submission kind of seems to lack purpose.
>
> on the other hand, I don't really think we provide a nice way to achieve
> this with session cluster right now :(
>
> D.
>
> On Tue, Dec 21, 2021 at 5:27 PM Lior Liviev <lior.liv...@earnix.com>
> wrote:
>
> Yes, I’m using "/jars/:jarid/run"
>
> Get Outlook for iOS
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Faka.ms%2Fo0ukef&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=jLI9gIYxxyCOFZtEIs8Ytp84XDUKznjfXxteVNKX8mo%3D&reserved=0>
> ------------------------------
> *From:* David Morávek <d...@apache.org>
> *Sent:* Tuesday, December 21, 2021 6:08:51 PM
> *To:* Lior Liviev <lior.liv...@earnix.com>; user <user@flink.apache.org>
> *Subject:* Re: Avoiding Dynamic Classloading for User Code
>
>
> *CAUTION*: external source
> Please always include the ML in the reply-list, so other can participate
> in the discussion / learn from the findings
>
> we are aware of multiple issues when web-submission can result in
> classloader / thread local leaks, which could potentially result in the
> behavior you're describing. We're working on addressing them.
>
> FLINK-25022 [1]: The most critical one leaking thread locals.
> FLINK-25027 [2]: Is only a memory improvement for a particular situation (a
> lot of small batch jobs) and could be fixed by accounting for when setting
> Metaspace size.
> FLINK-25023 [3]: Can leak the classloader of the first job submitted via
> rest API. (constant overhead for Metaspace)
>
> In general, web-submission is different from a normal submission in way,
> that the "main method" of the uploaded jar is executed on JobManager and
> it's really hard to isolate it's execution from possible side effects.
>
> Could you by any chance try to submit jobs with the Flink CLI instead?
> That should be more robust when it comes to the class loading issues.
>
> Which endpoint are you using for submitting the job? "/jars/:jarid/run"?
>
> [1] https://issues.apache.org/jira/browse/FLINK-25022
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FFLINK-25022&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=VSeqCMxUuGf0s43SdZkMkWlfQlHYjlHTEnQnKmUjd%2Fg%3D&reserved=0>
> [2] https://issues.apache.org/jira/browse/FLINK-25027
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FFLINK-25027&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=IaW%2Bq9U0aW5A%2B86xuIQv984WApprwiNyNdSguhLixUk%3D&reserved=0>
> [3] https://issues.apache.org/jira/browse/FLINK-25023
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FFLINK-25023&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=r%2BZIyx1nnwpO3wqnfHulQYIUUfB5vZe6vkC6N7IGS8U%3D&reserved=0>
>
> On Tue, Dec 21, 2021 at 4:49 PM Lior Liviev <lior.liv...@earnix.com>
> wrote:
>
> Yes, I use the REST API. I'm running into OOM Metaspace, and I think it's
> a class-loading problem, so that's why I'm thinking of putting the jar in
> flink/lib
> ------------------------------
> *From:* David Morávek <d...@apache.org>
> *Sent:* Tuesday, December 21, 2021 5:43 PM
> *To:* Lior Liviev <lior.liv...@earnix.com>
> *Cc:* user@flink.apache.org <user@flink.apache.org>
> *Subject:* Re: Avoiding Dynamic Classloading for User Code
>
>
> *CAUTION*: external source
> Hi Lior,
>
> can you please provide details about the steps (I'm not sure what load jar
> / execute with the API means)? are you submitting the job using the REST
> API or Flink CLI? I assume you're using a session cluster.
>
> also what is the concern here? do you run into any class-loading related
> issues?
>
> D.
>
> On Tue, Dec 21, 2021 at 3:48 PM Lior Liviev <lior.liv...@earnix.com>
> wrote:
>
> Hello, I have existing fixed cluster (*not* a new one with every job
> execution) and a single Jar +multiple executions with different params.
>
> Currently my procedure is: 1. Download Jar 2. Load Jar with API  3.
> Execute with API.
> I plan to avoid dynamic class loading by applying method described in:
> https://nightlies.apache.org/flink/flink-docs-master/docs/ops/debugging/debugging_classloading/#avoiding-dynamic-classloading-for-user-code
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnightlies.apache.org%2Fflink%2Fflink-docs-master%2Fdocs%2Fops%2Fdebugging%2Fdebugging_classloading%2F%23avoiding-dynamic-classloading-for-user-code&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=uEK%2BChY0COeJjs17q1xfQROSeniUAHHLtDCnGkntpzY%3D&reserved=0>
> Debugging Classloading | Apache Flink
> <https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnightlies.apache.org%2Fflink%2Fflink-docs-master%2Fdocs%2Fops%2Fdebugging%2Fdebugging_classloading%2F%23avoiding-dynamic-classloading-for-user-code&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=uEK%2BChY0COeJjs17q1xfQROSeniUAHHLtDCnGkntpzY%3D&reserved=0>
> Debugging Classloading # Overview of Classloading in Flink # When running
> Flink applications, the JVM will load various classes over time. These
> classes can be divided into three groups based on their origin: The Java
> Classpath: This is Java’s common classpath, and it includes the JDK
> libraries, and all code in Flink’s /lib folder (the classes of Apache Flink
> and some dependencies).
> nightlies.apache.org
> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fnightlies.apache.org%2F&data=04%7C01%7CLior.Liviev%40earnix.com%7C1a9c1b07797b464d41a508d9c5432d54%7Cae9992508a9f4ae58a5dce9de7084b84%7C0%7C0%7C637757714588342072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=%2B5%2Bn%2BTyZJ%2FLmQY1JvFQ1zYEymZqkg03Ty9cPQTFfwK0%3D&reserved=0>
> My question is:
>
> After putting the Jar in $FLINK/lib, do I need to load Jar and execute it
> the old way, or what?
>
> Do not click on links or open attachments unless you recognize the sender.
> Please use the report button if you believe this email is suspicious.
>
> Do not click on links or open attachments unless you recognize the sender.
> Please use the report button if you believe this email is suspicious.
>
> Do not click on links or open attachments unless you recognize the sender.
> Please use the report button if you believe this email is suspicious.
>
> Do not click on links or open attachments unless you recognize the sender.
> Please use the report button if you believe this email is suspicious.
>
> Do not click on links or open attachments unless you recognize the sender.
> Please use the report button if you believe this email is suspicious.
>

Reply via email to