You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@reef.apache.org by "Markus Weimer (JIRA)" <ji...@apache.org> on 2018/10/08 14:36:00 UTC

[jira] [Commented] (REEF-2048) Application built with REEF on .net 461 will fail to resolve System.ValueTuple

    [ https://issues.apache.org/jira/browse/REEF-2048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16641909#comment-16641909 ] 

Markus Weimer commented on REEF-2048:
-------------------------------------

{quote}the failure was due to a library trying to resolve the .net framework 4.7 version of the System.TupleValue{quote}

I am confused by this. How did .NET 4.7 enter the dependency tree? Do the machines in Batch run .NET 4.7? Or did we add a dependency on 4.7 by accident?

> Application built with REEF on .net 461 will fail to resolve System.ValueTuple
> ------------------------------------------------------------------------------
>
>                 Key: REEF-2048
>                 URL: https://issues.apache.org/jira/browse/REEF-2048
>             Project: REEF
>          Issue Type: Bug
>            Reporter: Scott Inglis
>            Assignee: Scott Inglis
>            Priority: Minor
>
> When running an application built with REEF, I ran into an issue where System.ValueTuple failed to resolve with the following error:
> {quote}System.IO.FileLoadException: 'Could not load file or assembly "System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" or one of its dependencies. The definition of the assembly manifest found does not match the reference to the assembly.
> {quote}
> It worked locally on my machine but failed in Azure Batch. After researching, I determined that the failure was due to a library trying to resolve the .net framework 4.7 version of the System.TupleValue – because the machines in Azure Batch did not have the .net framework installed on the machine, it would hit this issue.
> The fix is to use Binding Redirects in the app.config. This means that both Org.Apache.REEF.Bridge.exe and Org.Apache.REEF.Evaluator.exe need to support this.
>  
> Proposal for the fix:
> Currently the app.configs for these applications are generated at runtime and are out of date. In addition Visual Studio can generate the binding redirects at build time using the following tags:
> {quote}<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
> {quote}
>  
> To fix this, the recommendation is to add the above tags to build.Common.props file. Then embed the generated app.config for both the bridge and evaluator into the client library. At runtime these will be extracted along with the jars and Bridge executable.
> REEF does support overrides of these configs through the use of job submission parameters. If an override is specified, the config file will not be extracted and the user specified one will be generated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)