Growing ZFS pool

recently one of the drives in my storage pool died. Considering that I already was running out of free space:

#zfs list storage
NAME USED AVAIL REFER MOUNTPOINT
storage 3.21T 820G 236K /storage

I decided to not only replace the failed 1.5TB drive but get two 4TB drives and upgrade whole vdev. Imagine my surprise that despite my memory telling me that it should grow on it’s own. It didn’t.

Some searching later I found out that replacing drives is only part of the solution.
First you have to Continue reading

Os X Preferences stopped working? There is a fix for that!

Recently I’ve noticed that my Preferences started behaving strangely. Only main panes would open, but no secondary windows would work. For example I could open network preferences and delete all interfaces, but clicking plus button to add new did not work. Which quickly left me with no network on my machine :-)

Some googling later and it seems to be an issue carried over from times when my machine had Leopard installed and some preferences were saved on the disk and carried over. Here is the fix:

defaults delete NSGlobalDomain NSUseLeopardWindowValues
defaults delete com.apple.Safari NSUseLeopardWindowValues
defaults delete -g AppleUseCoreUI
killall SystemUIServer

Zend Studio running out of memory? There’s a fix for that!

Recently while working in Zend Studio I had couple of crashes that I finally traced down to it running out of memory. After searching around I found that you can bump up it’s default settings by editing it’s .ini file.

The file is located in /Applications/Zend Studio.app/Contents/MacOS


# cat ZendStudio.ini
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-showlocation
-name
Zend Studio
-vmargs
-Xms512M
-Xmx1536M
-XX:MaxPermSize=256m
-DGIT_SSL_NO_VERIFY=true
-Dsvnkit.http.sslProtocols=SSLv3
-Djava.awt.headless=true
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xdock:icon=../Resources/mac.icns

The settings that you need to bump are Xms and Xmx (in case above they are already bumped up.

My Zend Studie has not crashed since. Happy coding!

Using built in Postgres 9.1.5 on Os X Mountain Lion (10.8)

I’ve been using Postgres db server for years in my day job. And for all those years I had a third party server installed on my Mac. But since Apple started bundling Postgres in Os X system I was thinking of ways to start using that one. Unfortunately it seems that Apple decided to make using it as hard as it’s possible so getting it to work needed some hacking.

The application I’m working with accesses db via network connection on localhost. So I needed to turn on listening on network interfaces. Postgres keeps it’s config file in /Library/Server/PostgreSQL/Data folder. You can find postgres.conf there. You need to edit this file and change two lines to show this:


port = 5432 # (change requires restart)
listen_addresses = '*' # what IP address(es) to listen on;

quick server restart:


# sudo serveradmin stop postgres
postgres:state = "STOPPED"
# sudo serveradmin start postgres
postgres:state = "RUNNING"

and… no luck. Still no connections are accepted on network interface. Checking settings:


# sudo serveradmin settings postgres
postgres:log_connections = "on"
postgres:unix_socket_directory = "/var/pgsql_socket"
postgres:listen_addresses = ""
postgres:unix_socket_group = "_postgres"
postgres:log_statement = "ddl"
postgres:log_line_prefix = "%t "
postgres:unix_socket_permissions = "0770"
postgres:log_lock_waits = "on"
postgres:logging_collector = "on"
postgres:log_filename = "PostgreSQL.log"
postgres:dataDir = "/Library/Server/PostgreSQL/Data"
postgres:log_directory = "/Library/Logs/PostgreSQL"

Shows that the listen_address parameter got somehow overwritten. It turns out that the server stores some parameters in plist files and those get priority over anything you set in postgres.conf file.


# sudo serveradmin set postgres:listen_addresses="*"
postgres:listen_addresses = "*"

changes that and now my application can access built in Postgres server on localhost.

But how about command line tools? Apple sets things up in a way that Postgres accepts socket connection only from users that belong to _postgres group. Now I needed to add myself to that group using dseditgroup command:


# sudo dseditgroup -o edit -a usertoaddtogroup -t user _postgres

and voila! I’ve gut running instance of Postgres (9.1.5) accepting connection from my application and letting me use all command line tools.