it is prossible to run qtmobility on arm platform - arm

i was compiled qtmobility modules multimedia to arm(using QtE4.8.1 arm-linux-gcc),also i put the lib files and plugin files in my arm linux file system。when i run a demo videoplayer (run well in desktop)there get a error like :
no service found for - "com.nokia.qt.mediaplayer" is it possible to run qtmobility multimediakit on
so i put gstreamer libs in /lib directory which compiled by arm-linux-gcc.also error occured
(:267): GStreamer-CRITICAL **: gst_object_ref: assertion object != NULL' failed
(<unknown>:267): GLib-GObject-CRITICAL **: g_object_set: assertionG_IS_OBJECT (object)' failed
(:267): GStreamer-CRITICAL **: gst_object_ref: assertion object != NULL' failed
(<unknown>:267): GStreamer-CRITICAL **: gst_element_link_pads_full: assertionGST_IS_ELEMENT (dest)' failed
(:267): GStreamer-CRITICAL **: gst_element_set_state: assertion GST_IS_ELEMENT (element)' failed
(<unknown>:267): GStreamer-CRITICAL **: gst_element_set_state: assertionGST_IS_ELEMENT (element)' failed
(:267): GStreamer-CRITICAL **: gst_element_unlink: assertion GST_IS_ELEMENT (dest)' failed
(<unknown>:267): GStreamer-CRITICAL **: gst_bin_remove: assertionGST_IS_ELEMENT (element)' failed
(:267): GStreamer-CRITICAL **: gst_obje
any help ?
thanks

You seemed to have something messed up. Do you know that GStreamer has native qt bindings?

Related

Build failed: Cannot find module react-native/local-cli/cli.js

Task :app:bundleReleaseJsAndAssets FAILED
internal/modules/cjs/loader.js:905
throw err;
^
Cannot find module android/node_modules/react-native/local-cli/cli.js'
1)I am not using react-native-community/cli
How can i fix this?

Assertion failed: (0), function uv_close, file ../deps/uv/src/unix/core.c, line 174 warning

I'm running a npm run start, and I get an Assertion warning. What is the problem?

C and libappindicator - Creating multiple indicators

I'm programming a simple indicator that is supposed to show an icon for each CPU Core in the Unity panel, that will change color depending on the temperature range.
That would require me to have more than one AppIndicator on the same program, since I think there's no way to have one AppIndicator with multiple icons or use a gtk_container to hold those and append it to the AppIndicator. I'm actually trying to use 1 AppIndicator for the menu (with the "Quit" option) and 1 AppIndicator for each CPU Core.
The program had no Gtk warnings with just one AppIndicator (the main one), but after I added the code for creating the other 2 AppIndicators for each CPU Core (both with different unique id's) Gtk started throwing some warnings and critical messages. The indicators show up in the panel just like they are supposed to, but I don't want to simply ignore those messages, as they could be hiding some real issues under the curtains.
Checking the code, the only thing I think could be triggering those warnings and critical messages is app_indicator_new() being called more than once, I actually removed all the menu and menu_item's creation routines for those extra indicators, leaving only the app_indicator_new() call and I still get those messages (one for each extra app_indicator_new() call after the first):
(process:8040): Gtk-CRITICAL **: IA__gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8040): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8040): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
When I add the code with the menu being created and associated with the extra AppIndicator's some extra errors show up:
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8681): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(process:8681): GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(process:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(process:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:8681): Gtk-CRITICAL **: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
(TempI:8681): Gtk-WARNING **: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
(TempI:8681): Gdk-CRITICAL **: IA__gdk_screen_get_display: assertion 'GDK_IS_SCREEN (screen)' failed
(TempI:8681): Gdk-CRITICAL **: IA__gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
(TempI:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(TempI:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(TempI:8681): Gtk-WARNING **: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
(TempI:8681): Gdk-CRITICAL **: IA__gdk_screen_get_display: assertion 'GDK_IS_SCREEN (screen)' failed
(TempI:8681): Gdk-CRITICAL **: IA__gdk_keymap_get_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
(TempI:8681): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(TempI:8681): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
I can post the code of the program if necessary, just didn't do it because it would make the question even larger. That's the block where I'm creating the extra AppIndicators though:
for(int i=0; i<TempI_Main.Cores_Counter; i++){
TempI_Main.Core[i].Gtk_Menu_Root=gtk_menu_new();
//The core name ("Core " + number)
char IndicatorName[TEMPI_MAX_CHARS];
snprintf(IndicatorName, TEMPI_MAX_CHARS,"TempI_Core %u",i);
TempI_Main.Core[i].Gtk_Menu_Root_Description=gtk_menu_item_new_with_label(IndicatorName);
gtk_menu_append(GTK_MENU(TempI_Main.Core[i].Gtk_Menu_Root),TempI_Main.Core[i].Gtk_Menu_Root_Description);
gtk_widget_set_sensitive(GTK_WIDGET(TempI_Main.Core[i].Gtk_Menu_Root_Description),FALSE);
gtk_widget_show(TempI_Main.Core[i].Gtk_Menu_Root_Description);
TempI_Main.Core[i].Gtk_Indicator=app_indicator_new(IndicatorName,"indicator-messages",APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
app_indicator_set_status(TempI_Main.Core[i].Gtk_Indicator, APP_INDICATOR_STATUS_ACTIVE);
//Need to set icon
//Need to set attention icon
app_indicator_set_menu(TempI_Main.Core[i].Gtk_Indicator,GTK_MENU(TempI_Main.Core[i].Gtk_Menu_Root));
}
Any clues what could be the cause? Are multiple AppIndicators per program not supported?
EDIT:
Corrected code after #Jean-François Fabre answer.
for(int i=0; i<TempI_Main.Cores_Counter; i++){
TempI_Main.Core[i].Gtk_Menu_Root=gtk_menu_new();
//The core name ("Core " + number)
char IndicatorName[TEMPI_MAX_CHARS];
//MAX_CHARS - 6 ("Core "+'\0') is the limit for appending
snprintf(IndicatorName, TEMPI_MAX_CHARS,"TempI_Core %u",i);
TempI_Main.Core[i].Gtk_Indicator_Name=strdup(IndicatorName);
TempI_Main.Core[i].Gtk_Menu_Root_Description=gtk_menu_item_new_with_label(TempI_Main.Core[i].Gtk_Indicator_Name);
gtk_menu_append(GTK_MENU(TempI_Main.Core[i].Gtk_Menu_Root),TempI_Main.Core[i].Gtk_Menu_Root_Description);
gtk_widget_set_sensitive(GTK_WIDGET(TempI_Main.Core[i].Gtk_Menu_Root_Description),FALSE);
gtk_widget_show(TempI_Main.Core[i].Gtk_Menu_Root_Description);
TempI_Main.Core[i].Gtk_Indicator=app_indicator_new(TempI_Main.Core[i].Gtk_Indicator_Name,"indicator-messages",APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
app_indicator_set_status(TempI_Main.Core[i].Gtk_Indicator, APP_INDICATOR_STATUS_ACTIVE);
//Need to set icon
//Need to set attention icon
app_indicator_set_menu(TempI_Main.Core[i].Gtk_Indicator,GTK_MENU(TempI_Main.Core[i].Gtk_Menu_Root));
}
EDIT2:
Code for creating a single Core indicator explicitely. Still throwing warnings and critical messages:
TempI_Main.Core[0].Gtk_Menu_Root=gtk_menu_new();
TempI_Main.Core[0].Gtk_Menu_Root_Description=gtk_menu_item_new_with_label("Core1");
gtk_menu_append(GTK_MENU(TempI_Main.Core[0].Gtk_Menu_Root),TempI_Main.Core[0].Gtk_Menu_Root_Description);
gtk_widget_set_sensitive(GTK_WIDGET(TempI_Main.Core[0].Gtk_Menu_Root_Description),FALSE);
gtk_widget_show(TempI_Main.Core[0].Gtk_Menu_Root_Description);
TempI_Main.Core[0].Gtk_Indicator=app_indicator_new("Core1","indicator-messages",APP_INDICATOR_CATEGORY_APPLICATION_STATUS);
app_indicator_set_status(TempI_Main.Core[0].Gtk_Indicator, APP_INDICATOR_STATUS_ACTIVE);
//Need to set icon
//Need to set attention icon
app_indicator_set_menu(TempI_Main.Core[0].Gtk_Indicator,GTK_MENU(TempI_Main.Core[0].Gtk_Menu_Root));
That in a loop is just bad:
char IndicatorName[TEMPI_MAX_CHARS];
snprintf(IndicatorName, TEMPI_MAX_CHARS,"TempI_Core %u",i);
TempI_Main.Core[i].Gtk_Menu_Root_Description=gtk_menu_item_new_with_label(IndicatorName);
...
TempI_Main.Core[i].Gtk_Indicator=app_indicator_new(IndicatorName, ...
You are declaring IndicatorName as an auto variable in the loop but pass it to gtk_menu_item_new_with_label which expects a const char *, means: it will just store the address of the string.
Not only the memory will be reused for further iterations and all menus will have the same indicator name within the loop, but exiting the loop the memory will be allocated to some other variable and the names will be trashed => undefined behaviour
You should make a copy of the string like this:
TempI_Main.Core[i].Gtk_Menu_Root_Description=gtk_menu_item_new_with_label(strdup(IndicatorName));
(of course a better way would be to store the copied string to be able to deallocate them if needed)
I found the root of the issue and it's embarassing to say, but I just misplaced the function that created the AppIndicator. It was being called before gtk_init() so that's where all those errors were coming from. First I had:
TempI_Set_Core_Indicator();
//Starts gtk
gtk_init(&argc,&argv);
TempI_Set_Main_Indicator();
and simply replacing it by:
//Starts gtk
gtk_init(&argc,&argv);
TempI_Set_Main_Indicator();
TempI_Set_Core_Indicator();
was enough to solve the problem. I was focusing so much on the function itself that I didn't stop to look where it was being called.

FAILURE: Execution failed for task ':card.io:buildNative'

I downloaded cardio source and config follow First build guide. But when i run './gradlew build', i got message like:
FAILURE: Build failed with an exception.
Where:
Build file '/media/hungnguyendata/eProtea/Projects/temp/card.io-Android-source/card.io/build.gradle' line: 163
What went wrong:
A problem occurred configuring project ':SampleApp'.
A problem occurred configuring project ':card.io'.
No such property: sonatypeUsername for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
After that, i create gradle.properties file for define property sonatypeUsername. Like this: "sonatypeUsername=sonatypeUsername
sonatypePassword=sonatypePassword". I got this message:
:card.io:buildNative
make: Entering directory /Projects/temp/card.io-Android-source/card.io/src/main/jni'
make: *** No rule to make target/Projects/temp/card.io-Android-source/card.io/src/main/jni/card.io-dmz/processor_support.cpp', needed by /Projects/temp/card.io-Android-source/card.io/src/main/obj/local/arm64-v8a/objs/cardioDecider/card.io-dmz/processor_support.o'. Stop.
make: *** Waiting for unfinished jobs....
make: Leaving directory/Projects/temp/card.io-Android-source/card.io/src/main/jni'
:card.io:buildNative FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':card.io:buildNative'.
Process 'command '/home/hungnguyen/applications/android-ndk-r10d/ndk-build'' finished with non-zero exit value 2
what should i do to build project. Thanks so much!

SQL Server setup fails with "Unable to generate a temporary class" when through chef-solo on vagrant

Over the past week I've been trying to address Chef COOK-1172 without much success. I'm trying to install SQL Server 2008 R2 Developer Edition (in my case) through Vagrant using the Chef-Solo provisioner.
I've been able to reproduce the issue outside of Chef by going directly through the Ruby WinRM gem and then fix it using a custom PowerShell script which uses the passed along credentials to start the setup.exe process on the guest Windows vagrant box. In other words, WinRM gem invokes a remote PS script which starts the SQL Server setup.exe under the specified credentials, and this works.
However, running the same exact script through chef-solo on the guest fails with with an InvalidOperationException: Unable to generate a temporary class.
The Ruby script and the embedded PowerShell script I'm using for testing, which is invoked from my OS X host:
require 'winrm'
endpoint = 'http://localhost:5985/wsman'
user = password = 'vagrant'
ps = <<EOH
function ps-runas ([String] $cmd, [String] $arguments)
{
Write-Host "ps-runas cmd: $cmd"
Write-Host "ps-runas args: $arguments"
$secpasswd = ConvertTo-SecureString "vagrant" -AsPlainText -Force
$process = New-Object System.Diagnostics.Process
$setup = $process.StartInfo
$setup.FileName = $cmd
$setup.Arguments = $arguments
$setup.UserName = "vagrant"
$setup.Password = $secpasswd
$setup.Verb = "runas"
$setup.UseShellExecute = $false
$setup.RedirectStandardError = $true
$setup.RedirectStandardOutput = $true
$setup.RedirectStandardInput = $false
# Hook into the standard output and error stream events
$errEvent = Register-ObjectEvent -InputObj $process `
-Event "ErrorDataReceived" `
-Action `
{
param
(
[System.Object] $sender,
[System.Diagnostics.DataReceivedEventArgs] $e
)
Write-Host $e.Data
}
$outEvent = Register-ObjectEvent -InputObj $process `
-Event "OutputDataReceived" `
-Action `
{
param
(
[System.Object] $sender,
[System.Diagnostics.DataReceivedEventArgs] $e
)
Write-Host $e.Data
}
Write-Host "ps-runas starting: $cmd"
if (!$process.Start())
{
Write-Error "Failed to start $cmd"
}
$process.BeginOutputReadLine()
$process.BeginErrorReadLine()
# Wait until process exit
$process.WaitForExit()
$process.CancelOutputRead()
$process.CancelErrorRead()
$process.Close()
}
EOH
cmd = ps
# Fails - Running through chef-solo fails - cannot compile a serialization assembly
cmd << "ps-runas \"c:\\opscode\\chef\\bin\\chef-solo.bat\" \"-c c:\\tmp\\vagrant-chef-1\\solo.rb -j c:\\tmp\\vagrant-chef-1\\dna.json\""
# Succeeds - Running setup directly works
#cmd << "ps-runas \"c:\\vagrant\\sql2008r2\\setup.exe\" \"/Q /ConfigurationFile=c:\\vagrant\\ConfigurationFile.ini\""
winrm = WinRM::WinRMWebService.new(endpoint, :plaintext, :user => user, :pass => password, :basic_auth_only => true)
winrm.set_timeout(60*20)
winrm.powershell(cmd) do |stdout, stderr|
STDOUT.print stdout
STDERR.print stderr
end
puts 'Done!'
From the sql installation logs:
013-03-03 22:44:50 Slp: Exception type: Microsoft.SqlServer.Chainer.Infrastructure.ChainerInfrastructureException
2013-03-03 22:44:50 Slp: Message:
2013-03-03 22:44:50 Slp: Unable to generate a temporary class (result=1).
2013-03-03 22:44:50 Slp: error CS0583: Internal Compiler Error (0xc0000017 at address 000007FEFD00AA7D): likely culprit is 'IMPORT'.
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'IMPORT' symbol 'System.Xml.Serialization.XmlSerializationReader'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'IMPORT' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderClusterNodesStatusPublicConfigObject'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderClusterNodesStatusPublicConfigObject'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol '<global namespace>'
2013-03-03 22:44:50 Slp: error CS0586: Internal Compiler Error: stage 'PREPARE'
2013-03-03 22:44:50 Slp: error CS0587: Internal Compiler Error: stage 'PREPARE'
2013-03-03 22:44:50 Slp: error CS0587: Internal Compiler Error: stage 'BEGIN'
2013-03-03 22:44:50 Slp:
2013-03-03 22:44:50 Slp: Stack:
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.DeserializeObject(String rootPath, Type type, String elementXPath)
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.DeserializeObject(String rootPath, Type type)
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Configuration.SetupExtension.FinalCalculateSettingsAction.ExecuteAction(String actionId)
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
2013-03-03 22:44:50 Slp: Inner exception type: System.InvalidOperationException
2013-03-03 22:44:50 Slp: Message:
2013-03-03 22:44:50 Slp: Unable to generate a temporary class (result=1).
2013-03-03 22:44:50 Slp: error CS0583: Internal Compiler Error (0xc0000017 at address 000007FEFD00AA7D): likely culprit is 'IMPORT'.
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'IMPORT' symbol 'System.Xml.Serialization.XmlSerializationReader'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'IMPORT' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderClusterNodesStatusPublicConfigObject'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderClusterNodesStatusPublicConfigObject'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization.GeneratedAssembly'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml.Serialization'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft.Xml'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol 'Microsoft'
2013-03-03 22:44:50 Slp: error CS0584: Internal Compiler Error: stage 'PREPARE' symbol '<global namespace>'
2013-03-03 22:44:50 Slp: error CS0586: Internal Compiler Error: stage 'PREPARE'
2013-03-03 22:44:50 Slp: error CS0587: Internal Compiler Error: stage 'PREPARE'
2013-03-03 22:44:50 Slp: error CS0587: Internal Compiler Error: stage 'BEGIN'
2013-03-03 22:44:50 Slp:
2013-03-03 22:44:50 Slp: Stack:
2013-03-03 22:44:50 Slp: at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
2013-03-03 22:44:50 Slp: at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
2013-03-03 22:44:50 Slp: at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)
2013-03-03 22:44:50 Slp: at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace)
2013-03-03 22:44:50 Slp: at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
2013-03-03 22:44:50 Slp: at Microsoft.SqlServer.Chainer.Infrastructure.DataStoreService.DeserializeObject(String rootPath, Type type, String elementXPath)
My first suspicion is that I'm running into some sort of permission problem with my temp directory, but I've tried running ProcMon and haven't found any ACCESS DENIED results while running setup. Additionally, I'm explicitly running as a local administrator (vagrant) because of the PowerShell script and UAC is turned off.
I could potentially list a lot of things I did to track this down, but in the end I discovered the failure wasn't specific to running the installer through Chef, or even Ruby. Essentially it would error out any time I used another process to install SQL Server through WinRM, even PowerShell which would produce an OutOfMemoryException in the installer logs.
This ultimately led me to wonder what was different about executing the installer through WinRM. Then I had a thought. If I were Microsoft I'd probably have some enterprisey features around WinRM that limited that attack surface on a server. Apparently WinRM has a feature called Quota Management.
In short, modifying the local group policy of my Windows guest VM fixed the problem and I was finally able to successfully install SQL Server through WinRM and Chef (with my above PS script). Here are the settings I used:
Console Root | Local Computer Policy | Computer Configuration |
Administrative Templates | Windows Components | Windows Remote Shell
MaxConcurrentUsers: 100
MaxMemoryPerShellMB: 0
MaxProcessesPerShell: 0
MaxShellsPerUser: 0
I also had this issue installing sql server over DSC on server 2016 (and probably older versions)
You can also set this option via powershell directly:
set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
From that ticket Chef COOK-1172, Julian C. Dunn [Chef] added a comment
We believe this is now fixed by Microsoft in the following hotfix, which will restore WinRM's respecting of MaxMemoryPerShellMB:
http://support.microsoft.com/kb/2842230
Unfortunately, this does not work for me. I am still having the same issue.
Having spent many days now chasing this, I have found that the root cause, in my case, was that when I included any kind of password in the unattend file, it failed when installing through WinRM.
This can be resolved by using CredSSP

Resources